根据mongodb中的计数条件查询字段子集

时间:2012-11-16 08:31:54

标签: mongodb mongodb-query mongo-shell mongodb-shell

我在集合中存储的文档格式为:


    {
        "a": {
            ...

            "b": {
                "c": cc,
                "d": dd,
                "e": ee,
                "f": ff
            }
        }

    }

我想从集合中所有文件中得到字段“d”和“e”,其中count(c)> 1。

如何有效地完成这项工作?

1 个答案:

答案 0 :(得分:0)

到达问题的map-reduce解决方案:

我的功能现在看起来像这样:

m = function() {
    emit(this.a.b.c, { data: [[this.a.b.d, this.a.b.e]] });
}

r = function(key, values) {
    var result = [];
    values.forEach(function(V) {
        Array.prototype.push.apply(result, V.data);
    });
    return {data: result};
}

db.coll.mapReduce(m, r, {out: {replace: "data"}})

非常适合这个目的:)