我在集合中有这些文件
{
_id: 1,
name: 'xpto',
arr: [1, 2, 3]
},
{
_id: 2,
name: 'xyz'
}
我希望addToSet number 4以更新{multi:1}进行arr,但是我收到错误“无法将$ addToSet修饰符应用于非数组。”。 我知道这是因为我的第二个文件没有arr字段。
当数组不在所有文档中时,是否可以使用$ push更新数组和/或使用update命令添加$ addtoset?
我用find查找,查找cursor.arr并创建数组(如果不存在)。
你知道另一种方式吗?
答案 0 :(得分:1)
如果您只需第一个文档中的更新数组,则可以使用$ push运算符,如下所示:
<强> db.docs.update({_ ID:1},{$推:{ARR:4}}); 强>
如果您需要更新两个文档,您也可以使用$ push,但第一个参数中包含空值:
db.docs.update({},{$ push:{arr:4}});
结果将是: * {“_ id”:1,“arr”:[1,2,3,4],“name”:“xpto”} {“_ id”:2,“arr”:[4],“name”:“xyz”} *