2014-12-31 28 views
1

我正在使用express,mongodb和monk編寫node.js應用程序。node.js mongodb投影在存在條件時被忽略

當我僅使用條件查找或僅使用投影進行查找時,我會得到預期結果,但是當我使用這兩種方法進行查找時,將返回完整文檔,即投影未執行。我的代碼如下所示:

var collection = db.get('myDB'); 
collection.find({field1: "value"},{field2: 1, _id: 0},function(e,docs) { 
    ...do stuff with docs... 
}); 

它返回不僅僅是field2但所有的文檔的各個領域上field1符合標準。我可以從這裏得到field2,但我不喜歡它的低效率。

有沒有同時使用標準和預測的方法?

回答

3

Monk使用空格分隔的字符串進行字段投影,在字段名前加-以排除字段名。

所以它應該是:

var collection = db.get('myDB'); 
collection.find({field1: "value"}, 'field2 -_id', function(e,docs) { 
    ...do stuff with docs... 
}); 
+0

它的作品!謝謝JohnnyHK。 –