我有一個名爲mongodb位置的集合。它有場 位置:找到mongo db獨特文檔
(_id,country,region,city,doctype,name)
可以有多個文件(記錄)使用相同的名稱。我想查找所有文件和選擇字段
_id,doctype,and name
具有唯一的名稱。我是mongo db的新手,請幫助我。
我有一個名爲mongodb位置的集合。它有場 位置:找到mongo db獨特文檔
(_id,country,region,city,doctype,name)
可以有多個文件(記錄)使用相同的名稱。我想查找所有文件和選擇字段
_id,doctype,and name
具有唯一的名稱。我是mongo db的新手,請幫助我。
做一個映射減少數是多個名稱:
db.collection.mapReduce(
function(){emit(this.name);},
function(key,values){
sum=0;
for(var i=0;i<values.length;i++){
sum+=values[i];
}
return sum;
},
{out:"count_per_name"}
);
這將創建一個名爲 「count_per_name」 集合。查詢找到與計數大於1
您想使用的功能.aggregate
與$group
運營商更大的名字:
db.collection.aggregate([
{ "$group": {
"_id": {
"_id": "$_id",
"doctype": " $doctype",
"name": "$name"
}
}}
])
這是一種對SQL「GROUP」操作符的等效。有關更多示例,請參閱MongoDB手冊中的SQL TO Aggregation mapping。
這實際上並沒有回答這個問題。另外,mapReduce方法的運行速度比聚合框架對應的要慢得多。你應該使用這些。看到我的答案。 –
你是對的!現在我必須修復我的代碼:) – gtsouk
不是重點。瞭解彙總框架。它以本機代碼運行,不使用JavaScript解釋器來獲取結果。運行這段代碼比本地實現慢得多。我正在評論你,所以你實際上是在學習和理解這個概念。 –