mongoose无法将$ addToSet修饰符应用于nodejs中的非数组

时间:2015-12-03 12:37:51

标签: node.js mongodb mongoose mongodb-query

这是我的部分

{
   create:123455,
   audio:5218,
   question:{
       subject : 5
   }
}

然后我想添加一个有问题的url数组,如

{
   create:123455,
   audio:5218,
   question:{
       subject : 5,
       url:["aaaaaaaaa"]
   }
}

我尝试过使用

this.findOneAndUpdate({
    answerID: id            
}, {
    $addToSet:{question:{imgUrl:url}}
}, {
    upsert:true
}).exec(cb);

当我运行该功能时出现了一些错误

Cannot apply $addToSet modifier to non-array\n

这是我的猫鼬模型

var AnswerSchema = new Schema({

    audio: {type: String},
    created: { type: Number },
    question: {
        imgUrl: { type: Array },
        subject: { type: String },
    },

});

1 个答案:

答案 0 :(得分:1)

您需要使用"dot notation"

Model.findOneAndUpdate(
    { 'answerID': id },
    { '$addToSet': { 'question.imgUrl': /* your new value */ } },
    { upsert: true }
).exec(cb);