我在mongodb中存储一些数字。例如

  • num1:5
  • num2:10
  • num1:11
  • num2:15

  • 我想在以下位置找到文件如果我通过“7”,则查询应检查7是否位于num1和num2之间,并且必须向我返回此文档。

    我试过了
    BasicDBObject query = new BasicDBObject("num1", new BasicDBObject("gte", 7).append("num2",new BasicDBObject("lte", 7)));
    


    List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
            obj.add(new BasicDBObject("num1", new BasicDBObject("gte", 7)));
            obj.add(new BasicDBObject("num2", new BasicDBObject("lte", 7)));
            query.put("$and", obj);
    

    两者都没有给我任何结果。您能否让我知道适合我目的的正确查询?

    最佳答案

    您忘记将$添加到运算符。而且我还建议在这种情况下使用QueryBuilder,它更加方便:

    DBObject query = QueryBuilder.start("num1").lessThanEquals(7).and("num2").greaterThanEquals(7).get();
    

    我认为num1始终不大于num2

    关于MongoDB在多个字段上的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18002390/

    10-09 23:48