【发布时间】:2011-08-29 08:38:04
【问题描述】:
例如我有这个文件:
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}})
有没有办法在一次操作中做到这一点?
【问题讨论】: