Java 使用Vertex mongoclient按日期查询mongodb的当前方法

Java 使用Vertex mongoclient按日期查询mongodb的当前方法,java,mongodb,vert.x,Java,Mongodb,Vert.x,我想从一个名为“UpdateOn”的字段小于或等于某个日期的集合中获取所有文档 我正在使用下面的代码片段 Date date = new Date(2018, 12, 2); JsonObject q = new JsonObject().put("updatedOn", new JsonObject().put("$lte", date)); mongoClient.findBatch("mycollection", q) .handler(r -> {

我想从一个名为“UpdateOn”的字段小于或等于某个日期的集合中获取所有文档

我正在使用下面的代码片段

Date date = new Date(2018, 12, 2);
JsonObject q = new JsonObject().put("updatedOn", new JsonObject().put("$lte", date));

mongoClient.findBatch("mycollection", q)
            .handler(r -> {

                System.out.println(r);

            })
            .endHandler(endr -> {
                System.out.println("end reached.");
            });
不幸的是,上面的代码片段引发了一个异常

JsonObject q=new JsonObject().put(“updatedOn”,new JsonObject().put($lte,Date))“JsonObject:class java.util.Date中的非法类型”


我在这里遗漏了什么吗?

如评论中所建议的,使用扩展JSON格式:

String date = "2018-12-02T00:00:00+00:00"
JsonObject q = new JsonObject().put("updatedOn", new JsonObject().put("$lte", date));

mongoClient.findBatch("mycollection", q)
            .handler(r -> {

                System.out.println(r);

            })
            .endHandler(endr -> {
                System.out.println("end reached.");
            });

JSON很可能正在通过Java驱动程序的解析器传递。因此,您需要一个带有
$date
键和一个ISO字符串或数字值的JSON对象。