如何在 Spring 数据 MongoDB 中使用 $arrayElemAt 运算符
How to use $arrayElemAt operator in Spring Data MongoDB
$arrayElemAt MongoDB 3.2 版新增。
db.users.aggregate([
{
$project:
{
name: 1,
first: { $arrayElemAt: [ "$favorites", 0 ] },
last: { $arrayElemAt: [ "$favorites", -1 ] }
}
}
])
DATAMONGO-1536 is about to add $arrayElemAt
and other missing aggregation operators to Spring Data MongoDB for the Ingalls 发布。同时,您可以提供自己的 AggregationExpression
来创建所需的任何操作。
对于上面的内容,类似下面的东西可以解决问题:
project("name") //
.and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", 0))).as("first")
.and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", -1))).as("last");
您现在可以将 $arrayElemAt
与 ArrayOperators.ArrayElemAt class 一起使用。
上面的 MongoDB 投影对于 Spring 数据 Mongo:
project("name")
.and(ArrayOperators.ArrayElemAt.arrayOf("favorites").elementAt(0)).as("first")
.and(ArrayOperators.ArrayElemAt.arrayOf("favorites").elementAt(-1)).as("last")
更简洁,你甚至可以使用$arrayElementAt
如下:
project("name")
.and("favorites").arrayElementAt(0).as("first")
.and("favorites").arrayElementAt(-1).as("last")
$arrayElemAt MongoDB 3.2 版新增。
db.users.aggregate([
{
$project:
{
name: 1,
first: { $arrayElemAt: [ "$favorites", 0 ] },
last: { $arrayElemAt: [ "$favorites", -1 ] }
}
}
])
DATAMONGO-1536 is about to add $arrayElemAt
and other missing aggregation operators to Spring Data MongoDB for the Ingalls 发布。同时,您可以提供自己的 AggregationExpression
来创建所需的任何操作。
对于上面的内容,类似下面的东西可以解决问题:
project("name") //
.and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", 0))).as("first")
.and(context -> new BasicDBObject("$arrayElemAt", asList("$favorites", -1))).as("last");
您现在可以将 $arrayElemAt
与 ArrayOperators.ArrayElemAt class 一起使用。
上面的 MongoDB 投影对于 Spring 数据 Mongo:
project("name")
.and(ArrayOperators.ArrayElemAt.arrayOf("favorites").elementAt(0)).as("first")
.and(ArrayOperators.ArrayElemAt.arrayOf("favorites").elementAt(-1)).as("last")
更简洁,你甚至可以使用$arrayElementAt
如下:
project("name")
.and("favorites").arrayElementAt(0).as("first")
.and("favorites").arrayElementAt(-1).as("last")