У меня есть коллекция, которую я хотел бы запросить следующим образом:
- вернуть все документы
- до 2 комментариев (например, срез, 0, 1 или 2)комментарии)
- все комментарии должны иметь представления> 10
Похоже, мне нужно создать функцию для оценки каждого документа в отдельности, но не ясно, как это делается, особенно учитывая, что яхочу сделать срез и вернуть до n элементов, соответствующих этому критерию.
Пример схемы:
{
title: "One",
comments: [
{
title: "comment1",
views: 9
},
{
title: "comment2",
views: 10
},
{
title: "comment3",
views: 11
},
{
title: "comment4",
views: 12
},
]
}
Я хочу сделать что-то вроде:
db.collection.find({"comments.views": {$gt: 10}}, {comments:{$slice: 2}})
Ноэто возвращает любой документ с комментарием с> 10 представлениями, а затем разрезает 2 комментария ... Я хочу вернуться к тем комментариям, которые имеют> 10 элементов.Я не могу сделать это на клиенте И использовать $ slice без потери некоторых комментариев, поэтому мне нужно сделать это на БД.Мысли?