如何使用 MongoDB Java 来使用 $toLower 和 $trim 聚合运算符?
How to use $toLower and $trim aggregation operators using MongoDB Java?
我有一个名为 Users 的集合,其中包含一个名为 skills 的数组。
我使用以下代码展开技能数组并计算与每个技能相关的文档数:
Bson uw = unwind("$skills");
Bson sbc = sortByCount("$skills");
Bson limit = limit(10);
coll.aggregate(Arrays.asList(uw, sbc,limit)).forEach(printDocuments());
现在我想对上述聚合使用 $trim 和 $toLower 操作,因为在数据库中, 一些技能以不同的方式保存(例如 "CSS", "CSS ", 和 "css").
我可以在 mongo shell 中使用以下聚合执行此操作:
db.users.aggregate([{$unwind:"$skills"} , {$sortByCount:{$toLower:{$trim:{input:"$skills"}}}}])
但是我在 Java.
中实现它时遇到了麻烦
你有什么想法吗?
我设法通过将 sortByCount 更改为以下内容来找到执行此操作的方法:
Bson sbc = sortByCount(eq("$toLower", eq("$trim", eq("input", "$skills"))));
我有一个名为 Users 的集合,其中包含一个名为 skills 的数组。
我使用以下代码展开技能数组并计算与每个技能相关的文档数:
Bson uw = unwind("$skills");
Bson sbc = sortByCount("$skills");
Bson limit = limit(10);
coll.aggregate(Arrays.asList(uw, sbc,limit)).forEach(printDocuments());
现在我想对上述聚合使用 $trim 和 $toLower 操作,因为在数据库中, 一些技能以不同的方式保存(例如 "CSS", "CSS ", 和 "css").
我可以在 mongo shell 中使用以下聚合执行此操作:
db.users.aggregate([{$unwind:"$skills"} , {$sortByCount:{$toLower:{$trim:{input:"$skills"}}}}])
但是我在 Java.
中实现它时遇到了麻烦你有什么想法吗?
我设法通过将 sortByCount 更改为以下内容来找到执行此操作的方法:
Bson sbc = sortByCount(eq("$toLower", eq("$trim", eq("input", "$skills"))));