使用 mongodb java 客户端从数组中获取第一个元素
Get the first element from an array with mongodb java client
我有一个 JavaScript 代码。
db.xxx.aggregate([
{$project: {object:{$first:'$object.array'}, _id:0}}
])
我不知道如何用java客户端覆盖它。
import org.springframework.data.mongodb.core.MongoTemplate;
...
Aggregation.newAggregation(
Aggregation.project().andExclude("_id").???
)
在哪里可以找到用法?
这是测试文档
public class TestArrayDocument {
@Id
String id;
Integer[] x;
}
注入 MongoTemplate
@Autowired
MongoTemplate mongoTemplate;
这是聚合方法
TypedAggregation<TestArrayDocument> aggregation = Aggregation.newAggregation(TestArrayDocument.class,Aggregation
.project()
.andExclude("_id")
.andExpression("first(x)").as("object"));
List<Map> mapData= mongoTemplate
.aggregate(aggregation,Map.class)
.getMappedResults();
x 是你的 $object.array.
return 在 LinkedHashMap 中“object”=>“firstElement”。
我有一个 JavaScript 代码。
db.xxx.aggregate([
{$project: {object:{$first:'$object.array'}, _id:0}}
])
我不知道如何用java客户端覆盖它。
import org.springframework.data.mongodb.core.MongoTemplate;
...
Aggregation.newAggregation(
Aggregation.project().andExclude("_id").???
)
在哪里可以找到用法?
这是测试文档
public class TestArrayDocument {
@Id
String id;
Integer[] x;
}
注入 MongoTemplate
@Autowired
MongoTemplate mongoTemplate;
这是聚合方法
TypedAggregation<TestArrayDocument> aggregation = Aggregation.newAggregation(TestArrayDocument.class,Aggregation
.project()
.andExclude("_id")
.andExpression("first(x)").as("object"));
List<Map> mapData= mongoTemplate
.aggregate(aggregation,Map.class)
.getMappedResults();
x 是你的 $object.array.
return 在 LinkedHashMap 中“object”=>“firstElement”。