在 JAVA 中更新 MongoDB 文档而不进行显式转换

Update a MongoDB document in JAVA without explicit conversion

我正在使用 mongo-db java 驱动程序 3.8 并按如下方式处理集合:

MongoDatabase md=mongoClient.getDatabase(databaseName);
MongoCollection<ConstructionPlan> collection=md.getCollection(plansCollectionName,abc.class);
collection.insertOne(item);
collection.find(Filters.eq("itemId", id),abc.class).first();

使用此代码,我无需进行任何转换。我一直在寻找一种以相同方式更新文档的方法。我正在考虑这样的事情:

abc anABCObject=collection.find(Filters.eq("itemId", id),ConstructionPlan.class).first();
//updates...
collection.update(anABCObject);

有没有办法在不进行 BSON 转换的情况下更新现有文档? (我没找到....)

updateOne 用于使用更新运算符更新文档字段。

您需要 replaceOne 替换文档。

collection.replaceOne(
   Filters.eq("itemId", id),
   anABCObject
);