【问题标题】:Using mongoose to update an array使用猫鼬更新数组
【发布时间】:2017-06-27 17:05:37
【问题描述】:

我在猫鼬中有一个需要更新的数组字段。现在我正在使用以下内容:

 var fieldsToSet = {
      somename: req.body.username,
      email: req.body.email.toLowerCase(),
      $addToSet:{array_field:'some single value'},
      search: [
        req.body.username,
        req.body.email,

      ],
    };

我使用更新它

 req.app.db.models.User.findByIdAndUpdate(req.user.id, fieldsToSet, options, function(err, user) {
      if (err) {
        return workflow.emit('exception', err);
      }

      workflow.emit('patchAdmin', user);
    });

但它似乎不起作用。有人可以帮帮我吗?

var userSchema = new mongoose.Schema({
    username: { type: String, unique: true },
    password: String,
     array_field:[String],
    email: { type: String, unique: true },

【问题讨论】:

    标签: javascript node.js mongodb mongoose mongodb-query


    【解决方案1】:

    您不能混合本质上是两种“更新”选项。 MongoDB 将使用提供的参数“替换”整个文档或应用您指定的“运算符”。

    看来你也想在这里$set

    var fieldsToSet = {
          "$set": {
              "somename": req.body.username,
              "email": req.body.email.toLowerCase(),
              "search": [
                req.body.username,
                req.body.email,
              ]
          },
          "$addToSet":{ "array_field": 'some single value' },
    };
    

    【讨论】:

    • 非常感谢。有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 2015-01-27
    • 2013-11-24
    • 2015-04-29
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多