見つける:マングースで、[オブジェクトの配列]からクエリすると、私は次のように定義された2つのMongoのスキーマを持って
var userSchema = new mongoose.Schema({
email: String,
password: String, //hash created from password
firstName: String,
lastName: String,
comment:{userComment:String,adminComment:String},
postalAddress: String,
city: String,
state: String,
country: String,
institution: String,
privilege: {type: String, enum:['normal','chair','admin']},
status: {type:String, enum: ['granted','removed','pending']},
myConference:[{type:Schema.Types.ObjectId,ref:'Conference'}],
mySubmission:[{type:Schema.Types.ObjectId,ref:'Submission'}]
});
var conferenceSchema = new mongoose.Schema({
conferenceTitle: {type:String},
conferenceDescription: String,
conferenceStartDate:{type:Date, default: Date.now},
submissionEndDate:{type:Date},
reviewEndDate:{type:Date},
**conferenceMembers:[{type:Schema.Types.ObjectId,ref:'User'}]**,
conferenceSubmissions:[{type:Schema.Types.ObjectId,ref:'Submission'}],
createdBy:{type:Schema.Types.ObjectId,ref:'User'},
//chairMembers:[{type:Schema.Types.ObjectId,ref:'User'}],
department:String
});
は要件:私は、それぞれ「ユーザーのためのユニークな_idすなわち一定に一致するすべての会議のオブジェクトを取得したいです'スキーマオブジェクト。 conferenceMembers「ユーザー」の配列である私が何をしたか
オブジェクト:
var userId=req.body.userId
**Conference.find({userId: {$in: [Conference.conferenceMembers]}},function(err,conf){**
if(err){
return res.send(500, err);
}
return res.send(200,conf);
しかし、フィルタは、私が試した、ここで働いていないよう:
それはPOSTです$ elemMatchだけでなく、運がない。
あなたの 'ConferenceSchema'には' userId'フィールドはありません。正しいコードを投稿してもよろしいですか? –
'find'基準に' userId'ではなく 'conferenceMembers'を使うべきです。以下の答えを見てください。 –
私の悪いですが、ここのuserIDはconferenceMemebers(オブジェクトの配列)の '_id'フィールドであると仮定しています。これはreq body earliersに入れているので、ここで取得しています。 – Shanky