mongodb - 只获取文档中的密钥

时间:2016-02-24 17:16:08

标签: mongodb

我有一个如下的集合 -

v11+k2, v11+k3, v11+v4,

我需要循环播放' f1,只获取k2,k3,k4之类的键,然后用k1的值附加它。即。我需要类似angular.module('clientApp') .service('ManagerService', ['$rootScope', function($rootScope) { var vm = this; var someValue = false; vm.setValue = function(value) { someValue = value; } $rootScope.$on('event', function(event, data) { vm.setValue(true); }); }]); 等的东西。我怎样才能实现这一目标?我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

可以通过Map-Reduce。以下mapreduce操作将填充一个名为collectionNameKeys的单独集合,其中所有键都作为_id值:

mr = db.runCommand({
    "mapreduce": "collectionName",
    "map" : function() {
        for (var key in this.f1) { emit(this.k1+key, null); }
    },
    "reduce" : function() {}, 
    "out": "collectionNameKeys"
})

要获取所有连接键的列表,请在生成的集合上运行distinct:

db[mr.result].distinct("_id")

示例输出

[ "v11k2", "v11k3", "v11k4", "v12k5", "v12k6", "v12k7" ]