【发布时间】:2019-05-19 03:02:29
【问题描述】:
我有一个 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 查询中高效完成吗?
【问题讨论】:
-
fbUser.findOne({ 'facebookId': '34234234234'}, 'matched.charmName', 'matched.requesterName', (err, mapped) => { console.log(matched); } );
-
@Govna
matched.charmName&matched.requesterName不存在我想编写查询,以便将它们添加到我的结果中