2013-01-10 12 views
8

MongoDB $ lub prace operatora przeznaczone poza kontekst meteorjs:

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

uzyskać wyniki dla każdego dokumentu, który ma e-maila [email protected] lub miasto Atlanta.

To samo zapytanie w składni Meteor nie daje te same wyniki:

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

Czytałem dokumenty meteorów - http://docs.meteor.com/#find - a ponieważ nie mówi nic o tym, jestem przy założeniu, powinien działać tak samo jak instancja mongodb 1.6+?

+0

Jakie są różnice w nowych wynikach? – SomeKittens

+1

SomeKittens, Cursor zwrócił wszystkie moje rekordy, a pobrane zwróciło liczbę poprawnych dopasowań. Do moich testów, miałem tylko 6 dokumentów w mojej kolekcji, a find() zwrócił wszystkie 6, pobranie dopasował 3 poprawnie. – gamengineers

Odpowiedz

20

find zwraca obiekt kursora. Aby uzyskać tablicę wartości, musisz użyć wartości fetch. Wypróbuj:

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

cudownie, dziękuję –

+0

dlaczego to się tak zachowuje? –

+0

@HaikalNashuha Przeczytaj wszystko o kursorach tutaj: http://stackoverflow.com/questions/3861558/what-are-the-benefits-of-using-database-cursor – mjhm

Powiązane problemy