gpt4 book ai didi

java - 使用 MongoDB Java 3.0 驱动程序批量更新

转载 作者:IT老高 更新时间:2023-10-28 13:14:40 28 4
gpt4 key购买 nike

在早期版本的 MongoDB Java 驱动程序中,要运行查询并对结果进行无序批量 upsert,我们所做的只是:

BulkWriteOperation bulk = dbCollection.initializeUnorderedBulkOperation();
bulk.find(searchQuery).upsert().update(new BasicDBObject("$set", getDbObjectModel()));

但是在版本 3 中,随着 Bson Document 支持和 MongoCollection.bulkWrite() 方法的引入,如何做到这一点?

我试过这个:

List<WriteModel<Document>> documentList = new ArrayList<>();

collection.bulkWrite(documentList, new BulkWriteOptions().ordered(false));

但是,我需要 upsert 功能。

谢谢。

最佳答案

您仍然可以使用所有功能,只是 BulkWrites 现在有不同的语法:

    MongoCollection<Document> collection = db.getCollection("sample");

List<WriteModel<Document>> updates = Arrays.<WriteModel<Document>>asList(
new UpdateOneModel<Document>(
new Document(), // find part
new Document("$set",1), // update part
new UpdateOptions().upsert(true) // options like upsert
)
);

BulkWriteResult bulkWriteResult = collection.bulkWrite(updates);

所以你使用 UpdateOneModel (或者如果你愿意的话)并设置UpdateOptions作为构造函数的第三个参数。

需要一些时间来适应,但它基本上只是使用与其他地方相同的语法构建“列表”。我想这是改变的主要原因。

关于java - 使用 MongoDB Java 3.0 驱动程序批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31470702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com