2013-01-10 140 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