我需要在 Spring Data 中使用 MongoDB 中的 $out 选项和allowDiskUse。 如果我有类似的东西
db.ratings.aggregate(
[
{$group:{_id:"$movieId", users_rated:{$push: "$userId"}}},
{$out: "movieUsersRated"}
],
{allowDiskUse: true}
);
在Java中像这样使用Spring Data
Aggregation agg = newAggregation(
group("movieId").push("$userId").as("users_rated")
);
但我不知道如何或在哪里添加 $out 和allowDiskUse。我看过很多教程,但似乎没有一个教程结合了这些选项。
最佳答案
可以使用AggregationOptions
设置
allowDiskUse
。不直接支持 $out
运算符,但可以通过为其提供 AggregationOperation
实现来添加。
AggregationOptions options = newAggregationOptions().allowDiskUse(true).build();
Aggregation agg = newAggregation( //
group("movieId").push("$userId").as("users_rated"), //
new AggregationOperation() {
@Override
public DBObject toDBObject(AggregationOperationContext context) {
return new BasicDBObject("$out", "movieUsersRated");
}
}).withOptions(options);
关于java - 如何使用 Spring Data Aggregation 输出到 MongoDB 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726416/