例如,我有这个文档:
db.test.save({
_id: 1,
list: [
{ key: "a" },
{ key: "b" },
{ key: "c" },
{ key: "d" },
{ key: "e" }
]
})
我需要从列表中删除第二个元素。
目前我分两步进行。我首先取消设置列表的第二个元素,但是$unset
操作符不会删除该元素,而是将其修改为null
,之后我从列表字段中提取任何可空值:
db.test.update({_id: 1}, {$unset: {"list.2": 1}})
db.test.update({_id: 1}, {$pull: {list: null}})
有没有一种方法可以在一次操作中完成这个任务?
findAndModify
中吗?其中文档的ID和数组项的存在作为查询参数使用了吗? - raffian