我有一个MongoDB模式
let fbUserSchema = new Schema({
facebookId: {type: String, required: true, index: true, unique: true},
name: String,
.
.
matched:[]
});
这是匹配项存储在数据库中的方式。
matched: [{
charm: 234134134134, // it is a facebookId
requester: 239846019346 // it is a facebookId
},
{
charm: 576452234, // it is a facebookId
requester: 58456363 // it is a facebookId
},
....]
charm
和requester
是facebookId's
,其名称可以从相同的架构中获取
查询任何用户时,我得到的matched []
是对象数组。
fbUser.findOne({ 'facebookId': '34234234234'}, 'matched', (err, matched) => {
console.log(matched);
});
我想以一种可以从fbUserSchema获取charm
和requester
的名称的方式进行查询。 (我想在结果中添加charmName
,requesterName
)
我希望结果为
matched: [{
charm: 234134134134, // it is a facebookId
charmName: 'Alex',
requester: 239846019346 // it is a facebookId
requesterName: 'Bella',
},
{
charm: 576452234, // it is a facebookId
charmName: 'Julia',
requester: 58456363 // it is a facebookId
requesterName: 'John',
},
....]
这可以在一个MongoDB查询中有效地完成吗?
答案 0 :(得分:1)
这应该使您尽一切努力:)
'facebookId': '34234234234'
中的$match
开始matched
charm
id上进行匹配requester
id上进行匹配