Использование механизма агрегации в Монго,
Как я могу достичь того же результата в Монго < 3,2 как в Монго 3.2 с операцией $ arrayElemAt?
Пример в Монго 3.2
Коллекция
{ "_id" : 1, "name" : "dave123", favorites: [ "chocolate", "cake", "butter", "apples" ] }
Запрос
db.users.aggregate([
{
$project:
{
name: 1,
first: { $arrayElemAt: [ "$favorites", 0 ] },
last: { $arrayElemAt: [ "$favorites", -1 ] }
}
}
])
Он отлично работает
Но, я был вынужден использовать Mongo 3.0, поэтому я не могу использовать этот оператор, который идеально подходит для того, что я хочу сделать.
Есть ли способ доступа к элементу массива по индексу с чем-то вроде. ..
Монго 3,0
Коллекция
{ "_id" : 1, "name" : "dave123", favorites: [ "chocolate", "cake", "butter", "apples" ] }
Запрос
db.users.aggregate([
{
$project:
{
name: 1,
first: { "$favorites.0" },
last: { "$favorites.1" }
}
}
])
Я пробовал, и он не работает, он дает мне пустой массив.
Однако, когда они являются свойствами, а не индексов она способна получить значения
Любая помощь будет очень ценна.
Благодаря