java - 如何使用mongodb 3.2使用范围查询

标签 java mongodb

我正在使用 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());
        }

任何人都可以帮我解决这个异常吗...

最佳答案

要获取范围,例如 3 < number < 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();
}

关于java - 如何使用mongodb 3.2使用范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596375/

相关文章:

java - 如何从 JSON 回复中提取有意义的信息?

java - 如何在我的网页中使用 EasyRec

mongodb - MongoDB和Hadoop基础

mongodb - 如何在 Sitecore 中格式化 MongoDB 副本集的连接字符串?

java - Intellij idea无法解析包含美元的类

java - 我怎样才能将 Line2D 与 Java 中的区域相交?

java - 如何以最少的编辑次数将一个字符串转换为另一个字符串?

python - Mongo 嵌入式文档查询

javascript - 如何减少 if 语句的数量

javascript - 连接mongodb到 Node 报错