我怎样才能获得特定的数组(或数组的键)?

时间:2015-04-10 07:24:50

标签: mongodb mongodb-query aggregation-framework mongodb-indexes

如何在mongoDB中获取包含“unique6”的特定数组(或数组的键)。

注意:数组内的值是唯一的。

{
    "_id" : "DETbQx7i9Sunu9w88",
    "someKey" : {
           "arr1" : ["unique1", "unique2", "unique3"],
           "arr2" : ["unique4", "unique5", "unique6"],
           "arr3" : ["unique7", "unique8", "unique9"]      
    }
}

1 个答案:

答案 0 :(得分:0)

使用MongoDB,您可以使用本机JavaScript函数来获取所需的BSON属性。基本上,您可以使用find()forEach()方法的组合迭代集合中的文档,或者如果您有需要查询的特定文档,则可以使用findOne()方法返回单个文档。以下演示如何在Mongo shell中使用前者获取包含元素"unique6"的数组键:

db.collection.find().forEach(function (doc){
    var arrayKey = "",
        obj = doc["someKey"];
    for (var key in obj) {        
        obj[key].forEach(function(e) {
            if (e == "unique6") arrayKey = key
        });
    }
    print(arrayKey); // <-- this variable has the array key    
});