在mongoose中将数组名称作为参数传递

时间:2014-08-24 19:20:41

标签: arrays node.js mongodb mongoose

我使用mongoose并且我使用findByIdAndUpdate()函数更新了我的数据库。我想将元素推送到文档中的不同数组中。我在我的文档中有不同名称的不同数组。我可以将name数组作为参数传递给this函数,或者我应该创建不同的函数,其中每个函数都有不同的nameArray

  this.findByIdAndUpdate(User._id,
                        {$push:{nameArray: 'element'}}, 
                        {upsert: true},
                        callback);

1 个答案:

答案 0 :(得分:3)

Node.js 4.x 中,您可以使用computed property语法直接在$push对象文字中执行此操作:

this.findByIdAndUpdate(User._id,
                       {$push: {[nameArray]: 'element'}}, 
                       {upsert: true},
                       callback);

在以前的版本中,您需要以编程方式构建$push对象:

var push = {};
push[nameArray] = 'element';
this.findByIdAndUpdate(User._id,
                       {$push: push}, 
                       {upsert: true},
                       callback);