我需要从查询中选择相应数据的用户。
我的数据库中有这个集合(我的查询也输出了两行或更多行)
> db.Friends.find()
{ "userId" : "k3XCWdN5M2pbzBiFD", "followeeId" : "3MTmHcJNEzaaS8hrd","_id" : "aiRD.." }
{ "userId" : "k3XCWdN5M2pbzBiFD", "followeeId" : "SoTozuZ4nWooRBeFz","_id" : "QingX.." }
当它只是一个结果作为findOne(...)时,第二个查询将如下所示:
users.findOne({ _id: firstQueryResult.followeeId })
但现在的问题是......如果我没有一个followeeId但是更多的用户,我如何从用户集合中选择用户?
请有人给我看一个代码示例。
我的研究: 这是一个很好的解决方案吗?
friendsData.forEach(function(relationShip) {
followeeIds.push(relationShip.followeeId);
});
console.log(followeeIds);
答案 0 :(得分:1)
好的,我终于弄明白了这个问题。对于下一位读者:
如果已禁用,则需要从数据库
发布集合Meteor.publish("userData", function () {
return Meteor.users.find({},
{fields: {'username': 1}});
});
PS:我想只发布用户名字段,那就是全部!
您还需要订阅数据!
Meteor.subscribe("userData");
现在您可以通过以下方式访问其他用户数据:
users= Meteor.users.findOne({username: "Nolifer"});
对于我原来的问题......我可能会使用这个函数来迭代多行的结果(它更像是一个SQL术语,但我不确定在mongoDb中使用哪个术语可能是一个文档?无论如何):
users.forEach(function(user) {
console.log(user);
});
多数民众赞成!
P.S。:我认为这没有什么不妥,但我知道对吗? :)所以,如果有人知道更好的方式,请发表评论。如果没有告诉我它是否对你有用:)答案 1 :(得分:0)
根据mongo手册,使用$in
操作数:http://docs.mongodb.org/manual/reference/operator/in/#op._S_in
db.inventory.find( { qty: { $in: [ 5, 15 ] } } )