我需要在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。我看过很多教程,但似乎没有一个将这些选项结合在一起。
最佳答案
可以使用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);
关于java - 如何使用Spring Data Aggregation输出到MongoDB集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34726416/