Javascript 在MongoDB/Meteor中使用elemMatch查找嵌套数组数据

Javascript 在MongoDB/Meteor中使用elemMatch查找嵌套数组数据,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,收集结构如下: {"_id" : "abc", "potentialUsers" : [{"userID" : "def"}, {"userID" : "ghi"}] }, {"_id" : "123", "potentialUsers" : [{"userID" : "456"}, {"userID" : "789"}] }, 我想查询用户abc在其潜在用户数组中是否有用户def。我当前的查询(客户端)是

收集结构如下:

{"_id" : "abc",
"potentialUsers" : [{"userID" : "def"}, 
                    {"userID" : "ghi"}]
},

{"_id" : "123",
"potentialUsers" : [{"userID" : "456"}, 
                    {"userID" : "789"}]
},
我想查询用户abc在其潜在用户数组中是否有用户def。我当前的查询(客户端)是


在服务器上,我将所有集合发布给用户,然后根据客户机的视图选择性地显示它。但是,当我尝试在阵列上使用elemMatch时,它只显示所有记录,而应该只显示1

这里不需要
$elemMatch
。这应该起作用:

var fId = Meteor.user().services.facebook.id;
return collection.find({'potentialUsers.userID': fid});

这里不需要
$elemMatch
。这应该起作用:

var fId = Meteor.user().services.facebook.id;
return collection.find({'potentialUsers.userID': fid});

请查看Meteor中minimongo的文档:

必须使用“字段”选项才能获得所需的结果

getPendingLiftRequests: function() {
    return collection.find({}, { fields: { potentialUsers: {$elemMatch: {userID: Meteor.user().services.facebook.id}}}});
}

请查看Meteor中minimongo的文档:

必须使用“字段”选项才能获得所需的结果

getPendingLiftRequests: function() {
    return collection.find({}, { fields: { potentialUsers: {$elemMatch: {userID: Meteor.user().services.facebook.id}}}});
}

我不知道meteor,但是mongo
find
中作为第一个参数的
{}
看起来非常可疑。它看起来像一个返回所有文档的空查询。第一个参数应该是什么?我不知道meteor,但是作为mongo
find
中的第一个参数的
{}
看起来很可疑。它看起来像一个返回所有文档的空查询。第一个论点应该是什么?