我想在MongoDB中執行此SQL語句選擇不同的多個領域:使用MongoDB的映射減少
SELECT DISTINCT book,author from library
到目前爲止,MongoDB的DISTINCT只支持一個場在一個時間。對於多個字段,我們必須使用GROUP命令或map-reduce。
我用Google搜索的方式來使用GROUP命令:
db.library.group({
key: {book:1, author:1},
reduce: function(obj, prev) { if (!obj.hasOwnProperty("key")) {
prev.book = obj.book;
prev.author = obj.author;
}},
initial: { }
});
但是這種方法只支持多達10000項。任何人都知道如何使用map reduce來解決這個問題?
非常感謝。它運作良好。但是我仍然很難找到'{exists:1}'的功能。根據我的理解,這是每種獨特價值的標識符。但我仍然覺得很奇怪。 –
通常情況下,這個值比較複雜,有幾個字段。你可以簡化它只發出一個值1,但是「{存在:1}」更加自我解釋,並且在你希望稍後添加更多字段時會更容易。 –