MongoDB проецирует целый поддокумент - PullRequest
0 голосов
/ 04 июля 2018

В моей коллекции куча таких документов.

{
"success": true,
"timestamp": 1519296206,
"base": "EUR",
"date": "2018-07-04",
"rates": {
    "AUD": 1.566015,
    "CAD": 1.560132,
    "CHF": 1.154727,
    "CNY": 7.827874,
    "GBP": 0.882047,
    "JPY": 132.360679,
    "USD": 1.23396,
  }
} 

Я хотел бы получить только date и весь поддокумент rates, как показано ниже. Я знаю, что мог бы добавить rates.AUD, rates.CAD и т. Д. К проекции, но это сделало бы проекцию чрезвычайно большой и просто невыносимой для чтения и трудной для поддержания, поскольку новое поле (или валюта в этом случае) может быть добавлено в будущее.

{
"date": "2018-07-04",
"rates": {
    "AUD": 1.566015,
    "CAD": 1.560132,
    "CHF": 1.154727,
    "CNY": 7.827874,
    "GBP": 0.882047,
    "JPY": 132.360679,
    "USD": 1.23396,
  }
} 

Существует ли какая-либо проекция, подобная {date: 1, "rates.*". 1}, которая работает как описано выше?

1 Ответ

0 голосов
/ 04 июля 2018

Может быть, это?

db.col.aggregate([ {
    $project: {
        date: 1,
        rates: 1
    }
}])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...