2016-12-01 1 views
0

$ arrayElemAt новое в версии MongoDB 3.2.

db.users.aggregate([ 
{ 
$project: 
    { 
    name: 1, 
    first: { $arrayElemAt: [ "$favorites", 0 ] }, 
    last: { $arrayElemAt: [ "$favorites", -1 ] } 
    } 
} 

])

ответ

2

DATAMONGO-1536 собирается добавить $arrayElemAt и другие операторы недостающее агрегации Спринг данных MongoDB для выпуска Ingalls. Тем временем вы можете предоставить свой собственный AggregationExpression, чтобы создать любую операцию.

Для выше что-то вроде следующего делает трюк:

project("name") // 
    .and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", 0))).as("first") 
    .and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", -1))).as("last"); 
Смежные вопросы