MongoDb: запрос к полю массива - PullRequest
       6

MongoDb: запрос к полю массива

0 голосов
/ 22 сентября 2018

У меня есть этот объект на reference коллекции:

> db.reference.find().pretty();
{
    "_id" : "Ref1",
    "metadata" : {
        "values" : [
            {
                "hola" : "adeu"
            },
            {
                "departament" : [
                    {
                        "ambit" : "just",
                        "name" : "ts"
                    }
                ]
            }
        ]
    },
    "timestamp" : ISODate("2018-09-22T08:37:08.989Z"),
    "_class" : "com.Reference"
}

Мне нужно получить документ, где metadata.values имеет объект {hola: "adeu"}.

Я пробовал безлюбая удача:

> db.reference.find({metadata: {values: {hola: "adeu"}}});
> db.reference.find({metadata: {values: [{hola: "adeu"}]}});

Есть идеи?

1 Ответ

0 голосов
/ 22 сентября 2018

Вы можете сделать что-то вроде этого:

db.getCollection('reference').find({"metadata.values" : { "$in" : [{"hola" : "adeu"}] }});

Вы также можете сделать elemMatch следующим образом, когда вы хотите его для одного объекта:

db.getCollection('reference').find({"metadata.values" : { "$elemMatch" : {"hola" : "adeu"} }})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...