gpt4 book ai didi

java - java中Mongodb之间的查询

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

我想读取mongodb中col1(value)和col2(value)之间的所有记录。所以我写了这段代码,但它不能正常工作。如何实现这个查询?

我的实体是:在我的实体中,我认为日期一样长,因为日期或月份对我来说并不重要。

private long id;
private String name;
private String description;
private long born_date ; // col1
private long death_date; // col2

200 到 500 之间的所有记录

      col1(val = 200)       col2(val = 500)
------|---------------------|------------

我的代码:

 Query betweenQuery = new Query();
betweenQuery.addCriteria(Criteria.where("col1").gte(vla1)).
addCriteria(Criteria.where("col2").lte(val2));
return MongoOperations.find(betweenQuery , Entity.class);

最佳答案

如前所述,将此类条件拆分为两个字段是没有意义的。可能您真正想要的是“两个”字段上的相同条件:

    Query betweenQuery = new Query();
betweenQuery.addCriteria(Criteria.where("col1").gte(200).lte(500)).
addCriteria(Criteria.where("col2").gte(200).lte(500));

序列化如下:

{ "col1" : { "$gte" : 200 , "$lte" : 500 } , "col2" : { "$gte" : 200 , "$lte" : 500 } }

因此基本上每列都必须包含所选值之间的值。

另请注意,此处的“BETWEEN”被视为“包含”,否则分别更改为 $gt$lt

关于java - java中Mongodb之间的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28979105/

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