MongoDB常用命令

124 阅读2分钟

查询数据

db.collection.find(query, projection)

query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 省略该参数即可(默认省略)。
  1. MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。
db.collection.find({key1:value1, key2:value2}).pretty()
  1. MongoDB OR 条件语句使用了关键字 $or
db.collection.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()
  1. AND 和 OR 联合使用
db.collection.find({"likes": {key0:value0}, $or: [{key1: value1}, {key2:value2}]}).pretty()

插入数据

db.collection.insert(document)
db.collection.insertOne(
   <document>,
   {
      writeConcern: <document>
   }
)
db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)

document:要写入的文档。
writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
ordered:指定是否按顺序写入,默认 true,按顺序写入。

更新数据

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

删除数据

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。

聚合管道操作

 db.collection.aggregate(AGGREGATE_OPERATION)
 AGGREGATE_OPERATION: 数组对象
  1. MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。
  2. 表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前聚合管道的文档,不能处理其它的文档。MongoDB中聚合的方法使用aggregate()。
  3. 一些聚合管道常用操作符:
  • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
  • match:用于过滤数据,只输出符合条件的文档,match: 用于过滤数据,只输出符合条件的文档,match使用MongoDB的标准查询操作。
  • addFields:addFields: addFields操作符用于在聚合管道中向文档中添加新的字段,或者修改现有字段的值。
  • $group:将集合中的文档分组,可用于统计结果。
  • $lookup:操作符用于在聚合管道中执行左外连接操作,将一个集合中的文档与另一个集合中的文档进行关联。它通常用于在一个集合中查找与另一个集合中的文档相关联的信息。
  • $limit:用来限制MongoDB聚合管道返回的文档数。
  • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
  • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
  • $sort:将输入文档排序后输出。
  • $expr: 用于在聚合管道中执行复杂的逻辑操作。它允许在聚合操作中使用聚合表达式来进行条件判断、比较操作等。
  • $size:用于在查询操作中获取数组字段的长度。它返回数组字段中元素的数量。
  • $sum:计算总和。
  • $avg:计算平均值。
  • $min:获取集合中所有文档对应值得最小值。
  • $max:获取集合中所有文档对应值得最大值。
  • $push:将值加入一个数组中,不会判断是否有重复的值。
  • $addToSet:将值加入一个数组中,会判断是否有重复的值,若相同的,组中已经存在了,则不加入。
  • $first:根据资源文档的排序获取第一个文档数据。
  • $last:根据资源文档的排序获取最后一个文档数据
  • $eq: 用于在查询和聚合操作中判断两个值是否相等。
  • $gt:用于在查询和聚合操作中判断一个值是否大于另一个值。