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,但是作为mongofind
中的第一个参数的{}
看起来很可疑。它看起来像一个返回所有文档的空查询。第一个论点应该是什么?