如何在获取文档时从存储在mogodb文档中的对象数组中获取单个对象

时间:2017-07-14 08:47:34

标签: node.js mongodb mongoose mongodb-query

我有一个社区架构:

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名成员? 任何帮助将不胜感激。

0 个答案:

没有答案