gpt4 book ai didi

java - 使用 morphia 对 mongodb 进行范围查询

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:02 25 4
gpt4 key购买 nike

我目前正在使用吗啡来构建我的查询(mongodb),如下(通过一些细微的变化重建)

 Query<myClass> query = datastore.createQuery(myClass.class).filter("meta",objectID);
List<Criteria> l = new ArrayList<>();
for (loop on different values of min and max) {
Criteria arrayA = query.and(query.criteria("price").greaterThanOrEq(min), query.criteria("price").lessThanOrEq(max)); //max and min are double
l.add(arrayA);
}
query.or(l.toArray(new Criteria[]{}));

上面的查询解析后相当于 -

{"m" : { "$oid" : "56186a51e4b0b33967940961"} , "$or" : [ { "$and" : [ { "p" : { "$gte" : 5000.0}} , { "p" : { "$lte" : 1.0E9}}]}]}

我最近意识到这个查询没有正确使用索引,最好使用这种格式的查询

{"m" : { "$oid" : "56186a51e4b0b33967940961"} , "$or" : [ { "$and" : [ { "p" : { "$gte" : 5000.0, "$lte" : 1.0E9}}]}]}

我已经使用mongo console(并解释)确认了第二个查询,尽管类似的查询对于大型数据集确实表现得非常好。但我无法在吗啡中找到等效的代码来构造此 mongo 查询。有人可以帮助我使用正确的语法来构造这个精确的查询(稍后提到),如果可能的话,在吗啡中。或者请建议我使用替代的 java 包装器来代替 morphia,它可以提供此功能。

最佳答案

我认为这对于 Morphia 来说是不可能的——你正在寻找一种“介于”之间的方法。

要么给 http://jongo.org尝试(基本上是 Java 中 MongoDB shell 的包装器)或提供解释的输出。也许可以通过其他方式进行调整。

关于java - 使用 morphia 对 mongodb 进行范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056706/

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