关于引用项

时间:2016-01-08 16:32:41

标签: node.js mongodb mongoose

基本上我有一个类似于这个的模式

User_A {
    a_array: [{
       b: { type: Schema.Types.ObjectId, ref: 'User_B' }
    }]
}
User_B {
    b_name:String
}

我需要做的是计算a_array中有多少不同的User_As具有特定的b。我不需要填充b所以我认为我可以通过这种方式查询User_A架构来过滤并查找只有b

的用户
User_A.find({'a_array.b': my_user_b._id})
    .exec(function (err, result) {
    })

前提是a_array.b元素是填充之前引用项的_id
但我不能让它工作,总是返回一个空数组,即使我确定my_user_b._id是正确的。

有没有办法实现这一目标。

1 个答案:

答案 0 :(得分:0)

问题出在'a_array.b'。因为a_array是一个数组,所以无法获得所需的结果。试试这个。

User_A.find({
    a_array: {$elemMatch: {b: my_user_b._id}}
}, function (err, result) {

});

这可以为您提供a_array.bmy_user_b._id的所有 User_A 记录。