public void add(T env, String id, Handler<ExtendedAsyncResult<Void>> fut) {
JsonObject jq = new JsonObject().put("_id", id);
String s = Json.encodePrettily(env);
JsonObject document = new JsonObject(s);
encode(document, null);
UpdateOptions options = new UpdateOptions().setUpsert(true);
cli.updateCollectionWithOptions(collection, jq, new JsonObject().put("$set", document), options, res -> {
if (res.succeeded()) {
fut.handle(new Success<>());
} else {
logger.warn("MongoUtil.add " + id + " failed : " + res.cause());
logger.warn("Document: " + document.encodePrettily());
fut.handle(new Failure<>(INTERNAL, res.cause()));
}
});
}