我有一个社区架构:
var community = mongoose.Schema({
subject: String,
body: String,
members: [{
isModerator: { type: Boolean, default: false },
muted: { type: Boolean, default: false },
deactivated: { type: Boolean, default: false },
status: String, // waiting (only in default community), active, invited, blocked, muted
date: Date,
profile: { type: mongoose.Schema.Types.ObjectId, ref: 'profile' }
}]
});
我想从社区中的成员数组中只获得1名成员,因为我知道社区中该成员的个人资料ID。但当我试图让它返回整个社区的详细信息,包括所有成员。 我尝试的方式是:
db.getCollection('communities').find({"_id":bjectId("593fe3cc32f9e76c7752fbbc"), "members.profile": {$eq: ObjectId("5949fa79948f3e18e0dea3bb")}}
)
或使用代码:
var query={};
query.id = req.query.batchId;
query['members.profile'] = {
$eq: req.query.profileId
};
db.community.findOne(query)
.populate('members.profile')
.exec(function(err, member){
if(err){
return res.failure(err);
}
return res.success();
});
我理解,因为我想找到(找到)社区,这就是为什么它回归整个社区。但我的问题是,在获得社区的同时,如何才能从社区中的一群成员中获得1名成员? 任何帮助将不胜感激。