Mongodb 在 java 中的查询之间

Mongodb between query in java

我想读取 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);

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

    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"被认为是"inclusive",否则分别改成$gt$lt