不能将$ push / $ pushAll修饰符应用于非数组,如何在mongoose模式中声明一个数组?

时间:2014-03-26 00:13:36

标签: node.js mongodb mongoose

这是我的mongo架构,我尝试使用多个值更新yes / no / usersId

var answersSchema = mongoose.Schema({
questionId: String,
usersId: Array,
yes: Array,
no: Array,
white: Array,
created : { type: Number, default: (new Date()).getTime() },
});

这是我的操作

answer.update({
                         $addToSet: { 
                            uersId: data.userId,
                            yes: data.userId
                        } 
                    }, function(updateResponse){
                        console.log('---------------------------------------> cb yes update',updateResponse)
                        result.answer = answer;
                        if (cb !== undefined && cb !== null) {
                            cb(result);
                        }
                    })

这是我的错误

Cannot apply $addToSet modifier to non-array

我知道这有些愚蠢,也许我很累,也许有人知道这个问题。

1 个答案:

答案 0 :(得分:0)

这是我的新mongo答案架构

var answersSchema = mongoose.Schema({
questionId: String,
usersId: [{ type: String, ref: 'Users' }],
yes: [{ type: String, ref: 'Users' }],
no: [{ type: String, ref: 'Users' }],
white: [{ type: String, ref: 'Users' }],
created : { type: String, default: (new Date()).getTime() },
});

我将字段定义到数组中,所以它可以正常工作