在spring数据中使用mongo的聚合管道时,我们经常面临复杂的管道。在这些场景中,spring数据提供的聚合类并没有覆盖所有可能的查询。当然,它现在比我两三年前开始使用时涵盖了更多的查询/功能。
document.parse vs aggregation示例
Aggregation.newAggregation(
// Document.parse here
aggregationOperationContext -> Document.parse("{ $match: { 'field': " + value + " } }"),
// Aggregation here
Aggregation.match(field, value)
);
我列出了每种方法的优点:
使用document.parse()的好处:
您在要解析的查询中所写的内容,就是java驱动程序将使用的内容。中间人少了。
允许复杂的查询(可能是好的也可能是坏的)。我见过人们进行复杂的查询,而简单的查询也会得到相同的结果)
使用spring数据提供的聚合的好处
简洁语法
不太可能因为打字错误而出错
我在这里发帖的目的是,我和我的团队经常讨论使用聚合类是否比将document.parse()与我们需要的内容混在一起有任何真正的优势。还有其他我没有列出的东西吗?比如,性能,易于测试等?我在他们的源代码中看不到任何明显的东西。谢谢您!
暂无答案!
目前还没有任何答案,快来回答吧!