查询运算符和更新运算符

37 阅读1分钟

查询运算符

比较

可以在查询中使用以下运算符来比较值:

  • $eq:值相等
  • $ne: 值不相等
  • $gt:值大于另一个值
  • $gte:值大于或等于另一个值
  • $lt:值小于另一个值
  • $lte:值小于或等于另一个值
  • $in:值在数组内匹配
db.mygame.find(age:{$eq:18})
db.mygame.find({age:{$in:[18,20]}})

逻辑性

以下运算符可以对多个查询进行逻辑比较。

  • $and:返回两个查询匹配的文档
  • $or:返回任一查询匹配的文档
  • $nor:返回两个查询均无法匹配的文档
  • $not:返回查询不匹配的文档
db.mygame.find({$and:[{age:{$eq:18}}]})

领域

以下运算符可用于更新字段:

  • $currentDate:将字段值设置为当前日期
  • $inc:增加字段值
  • $rename:重命名字段
  • $set:设置字段的值
  • $unset:从文档中删除该字段
db.mygame.updateOne({name:'张三'},{$currendDate:{lastDate:true}})
db.mygame.updateOne({name:'张三'},{$inc:{age:5}})
db.mygame.updateOne({name:'张三'},{$unset:{age:''}})//删除age字段

数组

以下运算符有助于更新数组。

  • $addToSet:将不同的元素添加到数组中
  • $pop:删除数组的第一个或最后一个元素
  • $pull:从数组中删除与查询匹配的所有元素
  • $push:向数组添加一个元素
db.mygame.updateOne({name:'张三'},{$set:{hobby:['篮球','羽毛球']}})
db.mygame.updateOne({name:'张三'},{$push:{hobby:'足球'}})
db.mygame.updateOne({name:'张三'},{$pop:{hobby:1}})//1是移除最后一个 0是第一个