我的收藏集中有很多这样的文件。
{
"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}
的投影,其工作原理如上所述?
答案 0 :(得分:1)
也许是吗?
db.col.aggregate([ {
$project: {
date: 1,
rates: 1
}
}])