我试图找到对另一个架构的引用并更新兄弟字段。具体来说,我试图根据特定的'调查来操纵下面的hasResponded字段。的ObjectId。
我的架构如下所示:
var userSchema = new mongoose.Schema({
// some other stuff
surveys: [{
survey: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Survey'
},
hasResponded: {
type: Boolean,
default: false
}
}]
});
答案 0 :(得分:0)
如果您有调查ID,只需搜索阵列中具有此特定ID的所有用户。 这样的事情:
Users.find({surveys: { "$elemMatch": { type: <ID> } } });
然后,遍历用户及其相应的调查数组,找到与您提供的ID匹配的用户。
不得不说如果经常发生这种查询,我会将这个数据库的结构略有不同。
制作新的架构 - UserSurveys,其中包含用户的ID和调查+ hasResponded。像这样:
var UserSurveySchema = new mongoose.Schema({
user_id: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
survey_id: {type: mongoose.Schema.Types.ObjectId, ref: 'Survey'}
hasResponded: {type:Boolean, 'default':false}
...
});
您可能还希望在用户和调查ID上保留索引 然后,更新字段会更容易,请求将花费更短的时间。
希望这有帮助。