有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用mongodb 3.2进行范围查询

我使用的是mongodb 3.2版本。我试图对下面的数据集使用以下查询。但由于以下异常,我无法获取记录:

Exception in thread "main" java.util.NoSuchElementException
    at com.mongodb.QueryResultIterator.next(QueryResultIterator.java:103)

我的数据集:

BasicDBObject obj3 = new BasicDBObject();
obj3.put("name", "Dhoni");
obj3.put("location", "Ranchi");
obj3.put("Profession", "Cricketer");
obj3.put("number", 3);

BasicDBObject obj4 = new BasicDBObject();
obj4.put("name", "Sakshi");
obj4.put("location", "Ranchi");
obj4.put("Profession", "HtlMgmt");
obj4.put("number", 4);

BasicDBObject obj5 = new BasicDBObject();
obj5.put("name", "Ziva");
obj5.put("location", "Ranchi");
obj5.put("Profession", "Player");
obj5.put("number", 5);

我的问题是:

BasicDBObject gtquery = new BasicDBObject();
        gtquery.put("number",new BasicDBObject("$gt",3).append("$lt",5));

        DBCursor cursor4 = col.find(gtquery);
        while(cursor4.hasNext()){
            System.out.println(cursor.next());
        }

有人能帮我解决这个例外吗


共 (1) 个答案

  1. # 1 楼答案

    要获得范围,请选择3<;数字<;5.将查询更改为:

    BasicDBObject gtquery = new BasicDBObject("number", 
        new BasicDBObject("$gt", 3).append("$lt", 5)
    );
    
    DBCursor cur = col.find(gtquery);
    try {
        while (cur.hasNext()) {
            System.out.println(cur.next());
        }
    } finally {
        cur.close();
    }