如何在嵌套属性中汇总查找?

时间:2019-07-16 12:02:08

标签: java spring mongodb lookup aggregation

我有一个连接到mongo db的Java Spring Application。

在该数据库中,我有两个集合:

包含具有以下架构的文档的目录:

{
  ata: string,
  description: string
}

更正,其中包含具有以下架构的文档:

{
   //some properties
   predictions: [
       {ata: string, accuracy: float}
   ],
   //other properties
}

我想同时将atas集合的ata属性和corrections属性的预测属性的ata属性“加入”,以便最终得到一个文档,

{
    //some properties
    predictions: [
      {ata: string, description: string, accuracy: float}
    ]
}

OR

{

   //some properties
   predictions: [
      {ata: {ata: string, description}, accuracy: float}
   ]

}

如何在mongo中做到这一点?

我使用以下代码查看我是否至少能够为每次预测获取正确的ata文档。

db.getCollection('corrections').aggregate([
{
    $lookup: 
    {
        from: "atas",
        localField: "predictions.ata",
        foreignField: "ata",
        as: "atas"
    }
}])

它在生成的文档中为我提供了正确的ata(如果atas集合中存在)。

现在,我希望能够在每个文档的预测属性中的对象的ata属性中包含那些atas,如上所述。

如果我的要求不清楚,请不要问我。

在此先感谢您的帮助或时间。

PS:我用Java和spring进行了标记,因为我想在Spring中实现它,但是首先我想看看如何在纯mongo中实现它。

0 个答案:

没有答案