Mongodb $ push $ position失败

时间:2015-03-12 15:58:58

标签: node.js mongodb mongoose

出于某种原因,$ position在此代码中没有做任何事情。有什么想法吗?:

Parent.findByIdAndUpdate(
        id,
        {$push: {"wishList": item, $position: 0}},
        {safe: true, upsert: true},
        function(err, model) {
          response.send("1");
        }
        );

这是架构:

/**
Defines Parent schema for mongo DB
*/
module.exports = {
    name        : String,
    dateAdded   : Date,
    plHash      : String,
    items       : [{
        author      : String,
        name        : String,
        dateAdded   : Date
    }],
    wishList        : [{
        author      : String,
        name        : String,
        dateAdded   : Date
    }],

};

1 个答案:

答案 0 :(得分:1)

关注docs

  

要使用$ position修饰符,它必须以$ each修饰符出现。

您可以尝试在更新中添加$each修饰符:

Parent.findByIdAndUpdate(id,
{
  $push: {
    wishList: {
       $each: [item], // Assuming item = {author:"foo", name:"bar", dateAdded:date }
       $position: 0
     }
  }
}, {safe: true, upsert: true}, function(err, model){
    response.send("1");
});