您如何使用 vertx-mongo 客户端执行查找( id : { $in : [ list ] } )
How do you execute a find( id : { $in : [ list ] } ) using vertx-mongo client
Vertx mongo 客户端希望查询参数作为 JSON 对象。到目前为止,我主要做了类似于下面的事情
JsonObject queryParam = new JsonObject().put("id", 123);
mongoClient.find("collection", queryParam, asyncResult -> {
if (asyncResult.succeeded()) {
// Do something
promise.complete();
} else {
promise.fail(asyncResult.cause());
}
});
我会根据自己的需要建立上面的查询参数。
现在我有一项服务可以 returns 我的 ID 列表。我必须在集合中查询那些匹配的 ID。理想情况下 mongo shell 我会做 db.getCollection("collection").find( id: { $in: [1, 2, 3, 4] } )
我检查了 vertx 文档,甚至在 vertx mongoClient.java 文件中搜索了一下。 Google 搜索没有为我提供在 vertx 中执行此操作的解决方案。如何在不编写大量代码的情况下实现这一目标?
好吧,这很简单,我只需要稍微清醒一下就能注意到这一点。复杂的查询可以分解成一个Json对象。
JsonObject queryParam = new JsonObject()
.put("id", new JsonObject().put("$in", listOfIds)); // ArrayList<Long>
我可以继续使用带有此查询参数的简单查找查询。
mongoClient.find("collection", queryParam, asyncResult -> {
// do something
});
Vertx mongo 客户端希望查询参数作为 JSON 对象。到目前为止,我主要做了类似于下面的事情
JsonObject queryParam = new JsonObject().put("id", 123);
mongoClient.find("collection", queryParam, asyncResult -> {
if (asyncResult.succeeded()) {
// Do something
promise.complete();
} else {
promise.fail(asyncResult.cause());
}
});
我会根据自己的需要建立上面的查询参数。
现在我有一项服务可以 returns 我的 ID 列表。我必须在集合中查询那些匹配的 ID。理想情况下 mongo shell 我会做 db.getCollection("collection").find( id: { $in: [1, 2, 3, 4] } )
我检查了 vertx 文档,甚至在 vertx mongoClient.java 文件中搜索了一下。 Google 搜索没有为我提供在 vertx 中执行此操作的解决方案。如何在不编写大量代码的情况下实现这一目标?
好吧,这很简单,我只需要稍微清醒一下就能注意到这一点。复杂的查询可以分解成一个Json对象。
JsonObject queryParam = new JsonObject()
.put("id", new JsonObject().put("$in", listOfIds)); // ArrayList<Long>
我可以继续使用带有此查询参数的简单查找查询。
mongoClient.find("collection", queryParam, asyncResult -> {
// do something
});