我在mongodb中有这样的文档:
{uid:1212, outbox:
[
{msg1},
{msg2},
{msg3},
...
{msgN}
]
}
我希望能原子地从数组outbox中移除前n个元素。
我知道两种从数组中移除元素的方法: 1)$pop 但它只能移除一个元素 2){$unset:{outbox.0:1}} 在{$pull:{outbox:null}}之后 但它不是原子操作,而且只能移除一个元素 更新 目前这是不可能实现的。
我在mongodb中有这样的文档:
{uid:1212, outbox:
[
{msg1},
{msg2},
{msg3},
...
{msgN}
]
}
db.data.update(
{uid:1212},
db.data.findOne({uid:1212}, {outbox: {$slice: [2,2]}, uid: 1, _id: 0 })
);