我有一个mongodb查询,可以正常工作
db.user.aggregate([
{
"$project": {
"data": {
"$objectToArray": "$$ROOT"
}
}
},
{
$unwind: "$data"
},
{
"$match": {
"data.v": {
$regex: "Mohit Chandani"
}
}
}
])
基本上,获取所有具有mohit chandani值的文档,下面是输出:
{ "_id" : "b387d728-1feb-45b6-bdec-dafdf22685e2", "data" : { "k" : "fullName", "v" : "Mohit Chandani" } }
{ "_id" : "8e35c497-4296-4ad9-8af6-9187dc0344f7", "data" : { "k" : "fullName", "v" : "Mohit Chandani" } }
{ "_id" : "c38b6767-6665-46b8-bd29-645c41d03850", "data" : { "k" : "fullName", "v" : "Mohit Chandani" } }
我需要这个查询转换为我的spring启动应用程序,我正在编写following:-
Aggregation aggregation = Aggregation.newAggregation(Aggregation.project(Aggregation.ROOT), Aggregation.match(Criteria.where(connectionRequest.getWord())));
在spring数据中进行长聚合时,了解采用哪种方法会很有帮助。
1条答案
按热度按时间slhcrj9b1#
这可能会帮助你,希望你正在使用
MongoTemplate
用于聚合。上面脚本的代码是
我不确定
project()
上面的代码都可以,因为我还没试过。我从SpringDataMongoDB中引用了它如果它不起作用,这肯定会起作用。在Spring Data 中很少有操作不受支持,例如
$addFields
,$filter
.. 所以我们做了个小把戏