Как проверить, существует ли поле и, если оно существует, получить его значение в mongodb $ in? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть запрос ниже

db.getCollection('DOCUMENT1').find(                                     
{"FIELD1":           
    {                                                                   
            "$in":[
1234567,
7654321
            ]
    }
}       , "$and": [{
            "FIELD2" : { $exists : true }
    }] 
        ,{"FIELD1" : 1, "FIELD2" : 1} )

Когда я выполняю запрос выше, я получаю следующую ошибку:

Ошибка: строка 9: неожиданный токен:

Я получаю только те документы, которые соответствуют "Field1". Используя $ in, из полученного документа я хочу проверить, существует ли другое поле (FIELD2), и, если существует, я хочу отобразить значение этого поля. Как мне этого добиться?

1 Ответ

1 голос
/ 23 октября 2019

Это должно быть примерно так:

db.getCollection('YourCollectionName').find({$and :[{field1: {$in:[1234567, 7654321]}},{field2:{$exists: true}}]},
{field1:1, field2:1, _id:0})

В вашем запросе есть синтаксические ошибки, а также $and - это массив, который принимает несколько фильтров, который должен быть указан вместо filterQuery со значением * 1005. * Пример: - .find(filterQuery, projectQuery)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...