2013-01-10 142 views
8

MongoDB的$或操作员按预期工作一个meteorjs上下文之外:

db.users.find({$or: [{email: '[email protected]'},{city: 'atlanta'}]}); 

我得到有电子邮件[email protected]或亚特兰大市的任何文件的结果。

流星语法相同的查询不会产生相同的结果:

Users = new Meteor.Collection("users"); 
Users.find({$or: [{email: '[email protected]'},{city: 'atlanta'}]}); 

我读过流星文档 - http://docs.meteor.com/#find - 和,因为它没有说什么,我假设它应该与mongodb 1.6+实例一样运行?

+0

与新结果有什么区别? – SomeKittens

+1

SomeKittens,光标返回了我的所有记录,而提取返回了正确匹配的数量。对于我的测试,我的集合中只有6个文档,并且find()返回了全部6个文档,正确地获取了匹配的3个文档。 – gamengineers

回答

20

find返回游标对象。您需要使用fetch来获取值的数组。尝试:

console.log(Users.find({$or: [{email: '[email protected]'},{city: 'atlanta'}]}).fetch()); 
+0

太棒了,谢谢 –

+0

为什么它的行为如此呢? –

+0

@HaikalNashuha阅读所有关于游标在这里:http://stackoverflow.com/questions/3861558/what-are-the-benefits-of-using-database-cursor – mjhm