0

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

{ "_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做一个$match聚合框架。这听起来效率很低,有更好的主意吗?abc

4

1 回答 1

0

您的问题与此问题非常相似。一探究竟。

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

于 2013-09-19T15:38:40.930 回答