MongoDB中“$”操作符表达式汇总 (3)

举例:

假设现有文档: { _id: 1, letters: ["a", "b"] } 执行:db.test.update({_id:1},{$addToSet:{letters:"c"}}) 结果:{ "_id" : 1, "letters" : [ "a", "b", "c" ] } 执行:db.test.update({_id:1},{$addToSet:{letters:["d","e"]}}) 结果:{ "_id" : 1, "letters" : [ "a", "b", "c", [ "d", "e" ] ] } 注意,若想让添加的多个元素分开成单个元素的效果,请参考$each的使用方法 $pop

语法:{ $pop: { : <-1 | 1>, ... } }

释义:删除数组中的第一个或最后一个元素,-1表示第一个,没错,第一个;1表示最后一个!

举例:

db.test.update({_id:1},{$pop:{letters:-1}}); $pullAll

语法:{ $pullAll: { : [ , ... ], ... } }

释义:删除数组或内嵌文档字段中所有指定的元素

举例:

假设现有文档:{ _id: 1, scores: [ 0, 2, 5, 5, 1, 0 ] } 执行:db.test.update( { _id: 1 }, { $pullAll: { scores: [ 0, 5 ] } } ) 结果:{ "_id" : 1, "scores" : [ 2, 1 ] } $pull

语法:{ $pull: { : <value|condition>, : <value|condition>, ... } }

释义:删除满足条件的元素

举例:

假设现有文档:{ _id: 1, votes: [ 3, 5, 6, 7, 7, 8 ] } 执行:db.test.update( { _id: 1 }, { $pull: { votes: { $gte: 6 } } } ) 结果:{ _id: 1, votes: [ 3, 5 ] } $push

语法:{ $push: { : , ... } }

释义:往数组中追加指定的元素,若文档中数组不存在,则创建并添加指定元素,自v2.4起,添加了对$.each的支持

举例:

db.students.update( { _id: 1 }, { $push: { scores: 89 } }) $each

语法:

{ $addToSet: { <field>: { $each: [ <value1>, <value2> ... ] } } } { $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }

释义:需要搭配\(addToSet或\)push方可使用

$sort

语法:

{ $push: { <field>: { $each: [ <value1>, <value2>, ... ], $sort: <sort specification> } } }

释义:自v2.4加,配合$push使用,表示给文档中的指定数组元素排序,1是升序,-1是降序

举例:

db.students.update( { _id: 1 }, { $push: { quizzes: { $each: [ { id: 3, score: 8 }, { id: 4, score: 7 }, { id: 5, score: 6 } ], $sort: { score: 1 } } } } ) $position

语法:

{ $push: { <field>: { $each: [ <value1>, <value2>, ... ], $position: <num> } } }

释义:自v2.6加,配合$push使用表示往数组元素中的指定位置插入元素

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxzpj.html