MongoDB帮助需要更新阵列

时间:2013-02-15 17:58:49

标签: javascript arrays mongodb

我在集合中有这些文件

{
   _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并创建数组(如果不存在)。

你知道另一种方式吗?

1 个答案:

答案 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”} *