MongoDB aggregate $ project возвращает "согласованный" объект - PullRequest
1 голос
/ 19 июня 2020

Я использую $ project, поэтому мой возвращаемый объект согласован, но выглядит так, как будто он пропускает поле, если его нет в записи.

Пример набора данных:

{ _id: 1, age: 32, name: "bob",  height: "6 feet" }
{ _id: 1, name: "jim", age: 22, height: "4 feet" }
{ _id: 1, name: "ann", height: "5.5 feet" }

Примечание У Анны отсутствует "возраст"

Я использую эту агрегацию для получения полей, возвращаемых в том же порядке:

db.getCollection('ppl').aggregate([{ "$project": { 
    "name": "$name",
    "age" : "$age",
    "height" : "$height"
}}]

Но Энн возвращается в следующем виде:

{ _id: 1, name: "ann", height: "5.5 feet" }

I действительно хочу, чтобы он вернулся с нулевым или пустым "возрастом"

{ _id: 1, name: "ann", age: "", height: "5.5 feet" }

Как я могу это сделать, чтобы ВСЕ мои объекты имели ВСЕ поля, которые я определил в ПРОЕКТЕ, даже если они отсутствуют в записи . ???

Спасибо

1 Ответ

0 голосов
/ 17 августа 2020

Вы можете использовать $ ifNull на стадии проекта, чтобы объявить значение по умолчанию.

https://mongoplayground.net/p/EpQsQQ2_TcS

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