从多个嵌入文档中查找最大日期

时间:2013-07-16 23:12:19

标签: mongodb mongodb-.net-driver

我的收藏中的许多文件之一如下:

{ "_id" :123,
  "a"  :[
            { "_id" : 1,
              "dt" :  ISODate("2013-06-10T19:38:42Z")
            },
            { "_id" : 2,
              "dt" :  ISODate("2013-02-10T19:38:42Z")
            }
      ],
  "b"  :[
            { "_id" : 1,
              "dt" :  ISODate("2013-02-10T19:38:42Z")
            },
            { "_id" : 2,
              "dt" :  ISODate("2013-23-10T19:38:42Z")
            }
      ],
  "c"  :[
            { "_id" : 1,
              "dt" :  ISODate("2013-03-10T19:38:42Z")
            },
            { "_id" : 2,
              "dt" :  ISODate("2013-13-10T19:38:42Z")
            }
      ]
}

我想找到整个文档的最大日期(a,b,c)。 我现在的解决方案是,我遍历所有根_id然后在每个$matchab的聚合框架中执行c根文件。这听起来非常低效,有什么更好的想法吗?

1 个答案:

答案 0 :(得分:0)

您的问题与this question非常相似。看看这个。

与该解决方案一样,您可以使用MongoDB的聚合框架处理您的问题,使用$project$cond运算符重复展平文档,同时在每一步保留最大值。