Как я могу получить конкретный массив (или ключ массива)?

Как я могу получить конкретный массив (или ключ массива), которые содержат "unique6" в mongoDB.

Примечание: значение внутри массива уникально.

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

1 ответ

Решение

С MongoDB вы можете использовать встроенные функции JavaScript для получения желаемых атрибутов BSON. По сути, вы можете перебирать документы в вашей коллекции, используя комбинацию find() а также forEach() методы, или если у вас есть конкретный документ, который вам нужно запросить, вы можете использовать findOne() метод, который возвращает один документ. Ниже показано, как в оболочке Mongo получить ключ массива, который содержит элемент "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    
});
Другие вопросы по тегам