簡體   English   中英

使用貓鼬更新數組

[英]Using mongoose to update an array

我在貓鼬中有一個數組字段,需要更新。 現在,我正在使用以下方法:

 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 },

您不能混合使用本質上兩種類型的“更新”選項。 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' },
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM