zoukankan      html  css  js  c++  java
  • MongoDB基本命令

    1. 登录到mongo

      //客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。 
      mongo --port 27017 
      //#切换到admin库 
      use admin 
      
    2. 数据库操作

      use blog #创建数据库
      show dbs | show databases # 查看所有的数据库
      db	#查看当前正在使用的mongo
      db.dropDatabase() # 删除数据库
      
    3. 集合操作

      db.createCollection("user") #创建用户集合
      show collections | show tables #查看所有的集合
      db.user.drop #删除集合
      
    4. 文档基本操作

      # 1. 插入操作
      db.user.insert(
      	{"age":20,"name":"张三","email":"123456789@qq.com"}, #插入的文档
      	{
      		# 可选"writeConcern":
      		ordered:true #可选。如果为真,则按顺序插入数组中的文档,如果其中一个文档出现错误,MongoDB将返回而不处理数组中的其余文档。如果为假,则执行无序插入,如果其中一个文档出现错误,则继续处理数组中的主文档。在版本2.6+中默认为true
      	}
      )
      
      db.user.insert(
      	{"age":20,"name":"张三","email":"123456789@qq.com"},
      	{
      		ordered:true 
      	}
      )
      # 2.查询操作
      db.collection.find(
      	<query>, #可选。使用查询运算符指定选择筛选器
      	[projection]) #可选。指定要在与查询筛选器匹配的文档中返回的字段(投影)。
      
      db.user.find({"age":20})
      db.user.find({"age":20},{age:1,_id:0})
      
      # 3.更新操作
      db.collection.update(
      query, # 更新的选择条件
      update, #要应用的修改
      options)
      options{
      	upsert # 可选。如果设置为true,则在没有与查询条件匹配的文档时创建新文档。默认值为false,如果找不到匹配项,则不会插入新文档
      	multi # 可选。如果设置为true,则更新符合查询条件的多个文档。如果设置为false,则更新一个文档。默认值为false。
      }
      
      db.user.update({age:20},{age:21}) # 除了age,其他字段都会被更新掉
      db.user.insert({"age":29,"name":"李四","email":"987654321@qq.com"})
      db.user.update({"age":29},{$set:{"age":30}}) # 局部更新
      
      # 4.删除文档
      db.collection.remove(条件)
      db.user.remove({"age":21})
      
    5. 分页查询

      db.user.count() #统计集合的记录数
      
      db.collection.find().limit(number1).skip(number2) #分页查询
      db.user.find().limit(2)
      
    6. 高级查询

      db.collection.find({field:/正则表达式/}) # 正则表达式查询
      db.user.find({"name":/李/})
      
      db.user.find({age:{$gt:28}}) #比较查询 < $lt,<= $lte,> $gt,>= $gte ,!= $ne
      
      db.user.find({age:{$in:[28,29]}}) # 包含查询
      
      db.user.insert({"age":28,"name":"张三","email":"987654321@qq.com"})
      db.user.find({$and:[{age:28},{name:"张三"}]} # 条件连接查询 $and $or
      
      
    7. 索引类型

    • 单字段索引
    • 复合索引
    • 其他索引:地理空间索引(Geospatial Index)、文本索引(Text Indexes)、哈希索引(Hashed Indexes)
    1. 基本命令操作

      db.user.getIndexes() # 返回集合中存在的索引
      
      db.collection.createIndex(
      keys, #包含字段和值对的文档,其中字段是索引键,值描述该字段的索引类型。对于字段上的升序索引,请指定值1;对于降序索引,请指定值-1
      options) # 包含一组控制索引创建的选项的文档
      db.user.createIndex({age:1})
      
      db.user.dropIndex({age:1})#删除索引
      
      db.collection.dropIndexes() #删除所有索引
      
    2. 索引的使用

      db.collection.find().explain() #分析查询性能
      
      #当查询条件和查询的投影仅包含索引字段时,MongoDB直接从索引返回结果,而不扫描任何文档或将文档带入内存
      
  • 相关阅读:
    嵌入式工程师C语言面试常见的0x10个问题
    C语言初学者网站推荐
    strlen和sizeof
    基于Docker搭建GitLab和Maven私服
    linux暴露端口可以被外部访问
    MySQL新增用户及赋予权限
    Docker添加域名解析
    Netstat 网络命令详解
    Mysql索引太长导致同步数据结构失败解决方法
    完美解决Cannot download "https://github.com/sass/node-sass/releases/download/binding.nod的问题
  • 原文地址:https://www.cnblogs.com/steven158/p/15736516.html
Copyright © 2011-2022 走看看