【发布时间】:2017-05-12 06:03:07
【问题描述】:
我有一个包含 Friends 的架构。 Friends 是一个数组,其中每个元素都是一个包含 id、gender 和 emoji 的对象。
var userSchema = new Schema({
id: {
type: String,
unique: true,
required: true
},
gender: String,
Friends: [{
id: String
gender: String
emoji: String
}]
});
在下面的代码中,我正在访问一个包含 Friends 数组的文档,并使用 distinct 指定搜索,这样它只显示文档的 Friends 数组。我只需要访问该数组中包含指定 id 的一个元素。不是像在代码中那样在查询之后过滤该数组,有没有办法只从查询中获取元素?换句话说,是否有一个额外的功能来区分或某种允许这样做的猫鼬运算符?
User.findOne().distinct('Friends', { id: req.body.myId }).then(function(myDoc) {
var friendAtt = myDoc.filter(function(obj) {
return obj.id == req.body.id
})[0]
})
【问题讨论】:
-
听说过 MongoDB 聚合框架吗??
-
从来没有我的朋友,在我开始研究之前有什么提示吗?
标签: node.js mongodb mongoose mongodb-query