gpt4 book ai didi

java - 过滤查询中的数据还是使用 Java 流?

转载 作者:行者123 更新时间:2023-12-01 06:12:33 24 4
gpt4 key购买 nike

我有一个 Play 2.3.x Java 应用程序通过 Morphia 连接到 MongoDB 数据库。

我在 MongoDB 中激活了慢查询分析,发现查询经常出现。它看起来像这样:

"query": {
"field1": null,
"field2": true,
"field3": "a061ee3f-c2be-477c-ad81-32f852b706b5",
"$or": [
{
"field4.VAL.VALUE_1": "EXPECTED_VALUE_1",
"field4.VAL.VALUE_2": "EXPECTED_VALUE_2"
}
]
}

在当前状态下,没有索引,因此每次执行查询时都会扫描整个集合。我还有一些文档,但我预计数据库会增长。

所以我想知道最好的解决方案是什么:

  1. 从查询中删除上述所有子句,检索所有结果(分页)并使用 Java Stream API
  2. 进行过滤
  3. 保持查询不变并为字段建立索引

如果您看到其他解决方案,请随时提出建议:)

谢谢。

最佳答案

始终在最接近数据源的地方执行所有可能的操作(过滤、排序等)。

为什么没有对字段建立索引?这就是它们的用途。

关于java - 过滤查询中的数据还是使用 Java 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com