【问题标题】:Mongoose $push doesn't insert arraysMongoose $push 不插入数组
【发布时间】:2017-01-19 18:45:23
【问题描述】:

这是我的猫鼬模式

var userSchema = new mongoose.Schema({
  referral:[{
    id:{type: String},
    name:{type: String}
  }],
  code:{type:String}
});

然后我尝试做这样的事情

User.findOneAndUpdate({code:'123'}, {$push:{'referral':{'id':'49385986','name':'myname'}}},
    function(err, result) {
        console.log(err);
        console.log(result);
    });

我可以看到结果,但是当我检查我的数据库时,它没有更新/插入。

【问题讨论】:

  • @chridam 在哪里?请指出
  • User.findOneAndUpdate({code:'123'},{})
  • @ShantanuMadane 我不明白,请发表答案吗?
  • @ShantanuMadane 试图修正错字,也不起作用
  • 如果你没有看到错误,并且你得到了结果,你的方法很可能是成功的,你能把日志和结果粘贴到问题中

标签: javascript node.js mongodb express mongoose


【解决方案1】:
Try This:

   User.findOneAndUpdate(
       {code:'123' },
       {
         $push: {
           referral: {
              $each: [ { id: "5", name:"abc" }, { id: "6", name: "xyz" }, { id: "7", name:"pqr" } ]
           }
         }
       },function(err,data){
        if(data){
         console.log(data); 
          }
        else{
        console.log(err);
         }

     });
    );

【讨论】:

  • 如果有效,请接受并投票。每当您想将一个或多个值插入数组时,$ each 都与 push 一起使用。
  • 您的代码不起作用,因为引用是一个数组,$each 有助于在适当的索引处添加元素,但在您的代码中它不了解必须在什么索引处添加数据
猜你喜欢
  • 1970-01-01
  • 2021-04-17
  • 2014-03-02
  • 2020-10-25
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
  • 2020-12-17
相关资源
最近更新 更多