MongoDB投影整个子文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB投影整个子文档相关的知识,希望对你有一定的参考价值。

我的收藏中有很多这样的文件。

{
"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.AUDrates.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}的投影,如上所述?

答案

也许这个?

db.col.aggregate([ {
    $project: {
        date: 1,
        rates: 1
    }
}])

以上是关于MongoDB投影整个子文档的主要内容,如果未能解决你的问题,请参考以下文章

用于算术运算的 MongoDB 聚合 - 子文档字段

MongoDB find() 在匹配(字段,值)时返回子文档

MongoDB find() 在匹配(字段,值)时返回子文档

文档上缺少字段的 MongoDB 投影

MongoDB 投影性能 - 还是只是许多小文档?

使用Spring-Integration获取具有某些字段(投影)的mongodb文档(仅限注释)