Я пытаюсь отобразить пустой, когда документ не существует
Когда я добавляю в проект следующий $ ifNull, результат не такой, как ожидалось, я делаю это, потому что некоторые документы неу меня есть поле deal.reviews.title, и разработчик приложения попросил меня отправить -1 или пусто вместо того, чтобы не отправлять его. Я не опубликовал весь запрос, так как он слишком длинный и не имеет значения, но, если он вам нужен, сообщите мне.
Соответствующие поля в $ project:
"deals.reviews.author.name": 1,
"deals.reviews.publishedDate": 1,
"deals.reviews.ranking": 1,
"deals.reviews.title": {$ifNull: ["$deals.reviews.title", -1]},
"deals.reviews.author.avatar_url": 1
Результат:
[
{
"ranking": 3,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-25T07:08:17.538Z",
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
},
{
"ranking": 4,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-26T02:28:43.742Z",
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
}
]
Как видите, заголовок поля выглядит следующим образом.
"title": [
[
"hhh",
"good shopping"
],
[],
[],
[]
]
если вместо добавления $ ifNull я просто добавлю 1, то результат будет таким:
$ project:
"deals.reviews.author.name": 1,
"deals.reviews.publishedDate": 1,
"deals.reviews.ranking": 1,
"deals.reviews.title": 1,
"deals.reviews.author.avatar_url": 1
Результат:
[
{
"ranking": 3,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-25T07:08:17.538Z"
},
{
"title": "hhh",
"ranking": 4,
"author": [
{
"avatar_url": "/uploads/files/Hz9K2erg_PotpCly.jpg",
"name": {
"last": "",
"first": "Eb"
}
}
],
"publishedDate": "2019-10-26T02:28:43.742Z"
}
]
Но, как я упоминал ранее, один из документов не имеет поля заголовка, что создает проблемы вПРИЛОЖЕНИЕ.
Заранее спасибо за помощь.