通过Java选择MongoDB

通过Java选择MongoDB,java,mongodb,Java,Mongodb,我在Java中从MongoDB选择数据时遇到以下异常 com.mongodb.MongoQueryException:查询失败,错误代码为2和 服务器上的错误消息“未知顶级操作员:$gte” 127.0.0.1:27017在com.mongodb.operation.findoOperation$1.call(findoOperation.java:493)在 com.mongodb.operation.findoOperation$1.call(findoOperation.java:483)

我在Java中从MongoDB选择数据时遇到以下异常

com.mongodb.MongoQueryException:查询失败,错误代码为2和 服务器上的错误消息“未知顶级操作员:$gte” 127.0.0.1:27017在com.mongodb.operation.findoOperation$1.call(findoOperation.java:493)在 com.mongodb.operation.findoOperation$1.call(findoOperation.java:483)位于 com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:241) 在 com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:214) 在 com.mongodb.operation.findoOperation.execute(findoOperation.java:483) 位于com.mongodb.operation.findoOperation.execute(findoOperation.java:80) 在com.mongodb.Mongo.execute(Mongo.java:818)上 mongodb.Mongo$2.execute(Mongo.java:805)位于 com.mongodb.DBCursor.initializecursors(DBCursor.java:851)位于 hasNext(DBCursor.java:152)位于 main(MongoFetch.java:55)


您的查询没有提到您正在查询的字段-只是范围,因此mongoDB并不真正知道该做什么。试试那样的

MongoClient mongo = new MongoClient();
DB db = mongo.getDB("mytest");

DBCollection col = db.getCollection("testt");

//read example
DBObject query = BasicDBObjectBuilder.start("$gte", "06/01/2016 00:00:00").add("$lte", "10/01/2016 00:00;00").get();
DBCursor cursor = col.find(query);

while(cursor.hasNext()) {
  System.out.println("docc:");
  System.out.println(cursor.next());
}

这解决了你的问题吗?
...
BasicDBObject query = new BasicDBObject();
query.put("yourDateField", BasicDBObjectBuilder.start("$gte", fromDate).add("$lte", toDate).get());
DBCursor cursor = col.find(query);
...