我有这样的文件:
{
_id : ...,
key : {
a : 1,
b : 2,
c : 3
}
}
我会用这个更新这个集合:
var data = {
b : 4,
c : 5
};
我希望我的文档能够更新到这个:
{
_id : ...,
xxx : {
a : 1,
b : 4,
c : 5
}
}
所以,如果我这样做:
db.myColl.update( _id , { $set: {"xxx": data } );
它最终将会出现如下文档:
{
_id : ...,
xxx: {
b : 4,
c : 5
}
}
所以我必须做两次:
db.myColl.update( _id , { $set: {"xxx.b": data.b } );
db.myColl.update( _id , { $set: {"xxx.c": data.c } );
是否可以在单一命令中完成?
答案 0 :(得分:1)
您可以将两个$set
字词组合到一个更新中来完成此操作:
db.myColl.update(_id, { $set: {"xxx.b": data.b, "xxx.c": data.c } });