Дублированные поля, использующие $ ifNull для отображения пустого значения, когда поле не существует - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь отобразить пустой, когда документ не существует

Когда я добавляю в проект следующий $ 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"
        }
    ]

Но, как я упоминал ранее, один из документов не имеет поля заголовка, что создает проблемы вПРИЛОЖЕНИЕ.

Заранее спасибо за помощь.

...