我是MongoDB的新手,我遇到了以下用例:
让我说我的mongodb文件是这样的:
{
_id: "joe",
name: "Joe Bookreader",
numbers: [
{
mobile: 741134217,
},
{
home: 123452411
}
]
}
现在我需要两次执行两项操作:
{office:112342282}
我相信我们可以在Mongo中执行此操作,但我没有在任何地方获取语法,我也无法在MongoDB文档中找到它。
P.S。我使用Monk Library这样做,和尚的具体语法会有很大的帮助。但除此之外它也会帮助我!
答案 0 :(得分:2)
您应该能够执行以下操作:
db.User.update({_id: 'joe'}, {$push: {numbers: {office: 112342282}}, $pull: {numbers: {home: 123452411}}});
不幸的是,Mongo并不允许您同时使用$push
和$pull
运算符在同一个字段上运行(请参阅this issue)。所以它真的需要:
db.User.update({_id: 'joe'}, { $push: { numbers: { office: 112342282}}})
db.User.update({_id: 'joe'}, { $pull: { numbers: {home: 123452411}}})
使用和尚的风格:
var users = db.get('users');
users.update({_id: 'joe'}, { $push: { numbers: { office: 112342282}}})
users.update({_id: 'joe'}, { $pull: { numbers: {home: 123452411}}})