如何在MongoDB中向数组中添加新项

时间:2015-06-15 00:01:49

标签: arrays node.js mongodb

我试图将新项目添加到任何ID下传入的名称。我的第一个问题是它似乎没有从我的任何变量(name,item,id)中获取值,而只是将它们用作对象键。我的下一个问题是,当我通过硬编码样本表信息进行测试时,它并没有向该数组添加更多项目,而只是用我在这里的任何值替换整个数组。

function addlist(name, item, id){ // Add to user's list
    console.log(id);
    db.collection('newcon').update({_id: id}, { "$set": { "$push": { name:item } } });
    ret(id);    
}

1 个答案:

答案 0 :(得分:2)

$set不是数组更新操作。

  

$ set运算符用指定的值替换字段的值。

您只想自己使用$push,例如

.update({_id: id}, {$push: {name: item}})

您无法在原始对象声明中插入对象属性名称,因此如果您想使用变量name,则必须创建一个对象来执行此操作:

var obj = {};
obj[name] = item;

然后,您可以将其传递给.update{$push: obj}