查找包含特定值最大出现次数的文档

时间:2016-06-06 20:14:09

标签: mongodb mongodb-query aggregation-framework

我有像这样的文件

{ "_id" : ObjectId("5755d81e2935fe65f5d167aa"), "prices" : [ 23, 11, 2, 3, 4, 1, 232 ] },
{ "_id" : ObjectId("5755d81e2935fe65f5d167ab"), "prices" : [ 99, 3, 23, 23, 12 ] },
{ "_id" : ObjectId("5755d81e2935fe65f5d167ac"), "prices" : [ 999, 12, 3, 4, 4, 4, 4, 4, 123 ] },
{ "_id" : ObjectId("5755d81e2935fe65f5d167ad"), "prices" : [ 24, 3, 4, 5, 6, 7, 723 ] }

我希望找到包含最高数字4的数组'price'的文档,在我的例子中是第三个文档。有什么方法可以查询吗?

1 个答案:

答案 0 :(得分:3)

从MongoDB 3.2开始,我们可以$project我们的文档并使用$size$filter运算符返回每个数组中数字def test_my_method(): try: my_module.my_method() except IOError, e: print "shouldn't see this error message" assert False except Exception, e: print "some other error message" assert False assert True 的“计数” 。从那里我们需要$group使用该“值”并使用$push累加器运算符返回具有相同“最大值”的文档数组。接下来4 $sort您的文档$limit并使用{{3}}返回_id的最大值。{/ p>

4