Мне нужно выбрать все документы, которые соответствуют списку «propIds», и я хочу отсортировать результаты по количеству дочерних свойств.
Мои документы настроены следующим образом, каждыйдокумент может содержать ноль или более свойств полей.
Я хотел бы отсортировать возвращаемый набор, чтобы документы с наибольшим количеством полей были первыми.
{
"propId" : 7,
"fields" : {
"fieldname1" : "fieldvalue1",
...
}
}
Я могу создатьзапрос find () выглядит следующим образом:
db.getCollection('col').find({"propId" : {"$in" : [7, 8, 9]}})
, но сортировка результатов затрудняется.
Я просматривал статистический оператор, но в настоящее время не могупреобразовать мою логику find () (выбирая документы, которые соответствуют списку идентификаторов) в агрегированный запрос, который также использует агрегацию $ sortByCount.
Указатель на работу агрегатора и на то, как я могу преобразовать поиск-Логический в совокупный запрос, будет оцененИли указатель на то, как я могу отсортировать поиск-запрос по количеству «полей».