找到mongo db的独特文档

时间:2014-04-12 13:11:22

标签: javascript mongodb aggregation-framework

我在mongodb中有一个名为location的集合。它有领域 位置:

 (_id,country,region,city,doctype,name)

可能有多个同名文件(记录)。我想查找所有文档并选择字段

_id,doctype,and name

具有唯一名称。我是mongo db的新手,请帮助我。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

执行map reduce以计算多个名称:

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的名称。

答案 2 :(得分:0)

您希望将.aggregate功能与$group运算符一起使用:

db.collection.aggregate([
    { "$group": {
        "_id": {
            "_id": "$_id",
            "doctype": " $doctype",
            "name": "$name"
        }
    }}
])

这类似于SQL“GROUP”运算符。有关更多示例,请参阅MongoDB手册中的SQL TO Aggregation mapping