Получить свойство из свойства массива в объект pymongo - PullRequest
0 голосов
/ 19 апреля 2019

Как получить свойство contactos.0.direcciones.0.id с помощью pymongo y django Framework?

{ 
    "_id" : ObjectId("5cb8c6827033b71491a296e3"), 
    "id" : NumberInt(89), 
    "contactos" : [
        {
            "id" : NumberInt(1), 
            "nombre" : "",  
            "direcciones" : [
                {
                    "id" : NumberInt(1),
                    "calle":"Street 1"

                }
         }
    ]
}

этот код запускается для contactos.id и извлекает максимальное значение идентификатора для contactos

use esco_mongo;
db.getCollection("clientes").aggregate(
    [
        { 
            "$match" : {
                "id" : NumberInt(89)
            }
        }, 
        { 
            "$project" : {
                "_id" : 1.0, 
                "contactos.id" : 1.0
            }
        }, 
        { 
            "$unwind" : {
                "path" : "$contactos"
            }
        }, 
        { 
            "$sort" : {
                "contactos.id" : -1.0
            }
        }, 
        { 
            "$limit" : 1.0
        }
    ], 
    { 
        "allowDiskUse" : false
    }
);

но если я перехожу на contactos.direcciones.id, не получаю результаты:

use esco_mongo;
db.getCollection("clientes").aggregate(
    [
        { 
            "$match" : {
                "id" : NumberInt(89)
            }
        }, 
        { 
            "$project" : {
                "_id" : 1.0, 
                "contactos.direcciones.id" : 1.0
            }
        }, 
        { 
            "$unwind" : {
                "path" : "$contactos.direcciones"
            }
        }, 
        { 
            "$sort" : {
                "contactos.direcciones.id" : -1.0
            }
        }, 
        { 
            "$limit" : 1.0
        }
    ], 
    { 
        "allowDiskUse" : false
    }
);

Возможно ли получить значения из массива direcciones в одном запросе к базе данных mongodb?

Заранее спасибо

...