Mongoose - 如何在子子文档数组中添加对象?

时间:2015-10-04 21:56:35

标签: arrays node.js mongodb mongoose

我可以将项目添加到子文档数组中,但我无法将项目添加到子子文档数组中。

这是我的Mongoose架构:

var botSchema = {
  "name" : String,
  "type" : String,
  "keyword" : String,
  "active" : Boolean,
  "cron" : String
};

var apiSchema = {
  "name" : String,
  "key" : String,
  "secret" : String,
   bots:[botSchema]
};

var userSchema  = {
    "email" : String,
    "password" : String,
    apis : [apiSchema]
};

module.exports.User = mongoose.model('user',userSchema);

如何将bot项目添加到现有API项目?

向用户添加API时没有问题。我这样做:

    User.findByIdAndUpdate(
    userId, {
        $push: {
            apis: api
        }
    }, {
        safe: true,
        upsert: true
    },
    function(err, model) {
        console.log(err);
        console.log(model);
    }
);

但我正在尝试将僵尸程序添加到现有API中。我试过这个:

User.findOneAndUpdate({
        "_id": userId,
        "apis._id": apiId
    }, {
        $push: {
            "apis.$.bots": bot
        }
    },

    function(err, doc) {
        console.error("Error:", err);
        console.log("Doc:", doc);
    }
); 

但是我显示了这个错误:

CastError:对于值“[object Object]”

,强制转换为未定义失败

0 个答案:

没有答案