首页 > 解决方案 > 当前使用 vertx mongoclient 按日期查询 mongodb 的方法

问题描述

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

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

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 中的非法类型:类 java.util.Date”在 JsonObject q = new JsonObject().put("updatedOn", new JsonObject().put("$lte", date));

我在这里错过了什么吗?

标签: javamongodbvert.x

解决方案


正如评论中所建议的,使用扩展的 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.");
            });

推荐阅读