如何使用 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"))));