我需要在Spring Data中使用$ out选项和来自MongoDB的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。我已经查看了许多教程,但似乎没有人将这些选项结合起来。
答案 0 :(得分:0)
allowDiskUse
设置 AggregationOptions
。 $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);