【发布时间】:2018-11-29 09:45:56
【问题描述】:
我需要获取与“propIds”列表匹配的所有文档,并希望根据它们有多少子属性对结果进行排序。
我的文档设置如下,每个文档可能包含零个或多个字段属性。
我希望对返回的集合进行排序,以便具有最多字段的文档排在第一位。
{
"propId" : 7,
"fields" : {
"fieldname1" : "fieldvalue1",
...
}
}
我可以像这样创建一个 find() 查询:
db.getCollection('col').find({"propId" : {"$in" : [7, 8, 9]}})
,但无法对结果进行排序。
我一直在查看聚合运算符,但我目前无法将我的 find() 逻辑(选择与 id 列表匹配的文档)转换为也使用 $sortByCount 聚合的聚合查询。
如果能提供一个指向聚合器如何工作的指针,以及如何将查找逻辑转换为聚合查询,将不胜感激。或指向如何按“字段”计数对查找查询进行排序的指针。
【问题讨论】:
标签: mongodb-query