Допустим, у меня есть коллекция в mongodb, чьи объекты имеют вложенный массив. Я хочу отсортировать на основе значения конкретного элемента массива. Возможно ли это?
Например, (а я только что составил пример), если у меня есть коллекция типов фильмов (боевик, комедия, мелодрама) и примеры, представленные пользователями, могу ли я найти все объекты, где данный пользователь представлен, отсортированные по дате фильма?
Например, я хотел бы найти все типы, в которых «Аарон» представил пример, отсортированный по году примера «Аарон».
Это почти как пункт "потребность где" в сортировке.
> db.movies.find (). Pretty ();
{
"_id" : ObjectId("4f2f07c1ec2cb81a269362c6"),
"type" : "action",
"examples" : [
{
"title" : "Gladiator",
"year" : 2000,
"submitter" : "Aaron"
},
{
"title" : "Mission Impossiple",
"year" : 1996,
"submitter" : "Bill"
},
{
"title" : "The Terminator",
"year" : 1984,
"submitter" : "Jane"
}
]
}
{
"_id" : ObjectId("4f2f07edaee5d897ea09f511"),
"type" : "comedy",
"examples" : [
{
"title" : "The Hangover",
"year" : 2009,
"submitter" : "Aaron"
},
{
"title" : "Dogma",
"year" : 1999,
"submitter" : "Bill"
},
{
"tile" : "Airplane",
"year" : 1980,
"submitter" : "Jane"
}
]
}
> db.movies.find ({'examples.submitter': 'Aaron'}). Sort ({'examples.year': 1}). Pretty ();
{
"_id" : ObjectId("4f2f07edaee5d897ea09f511"),
"type" : "comedy",
"examples" : [
{
"title" : "The Hangover",
"year" : 2009,
"submitter" : "Aaron"
},
{
"title" : "Dogma",
"year" : 1999,
"submitter" : "Bill"
},
{
"tile" : "Airplane",
"year" : 1980,
"submitter" : "Jane"
}
]
}
{
"_id" : ObjectId("4f2f07c1ec2cb81a269362c6"),
"type" : "action",
"examples" : [
{
"title" : "Gladiator",
"year" : 2000,
"submitter" : "Aaron"
},
{
"title" : "Mission Impossiple",
"year" : 1996,
"submitter" : "Bill"
},
{
"title" : "The Terminator",
"year" : 1984,
"submitter" : "Jane"
}
]
}
Обратите внимание, что документы возвращаются отсортированными по году коллекций (как и ожидалось). Можно ли отсортировать документы только по тем, которые были предоставлены данным пользователем? для некоторых дополнительных деталей я использую нодный драйвер mongo для nodejs.