2015-05-18 3 views
0

У меня есть MongoDB документы, как:Unordered Массовое обновление в MongoDB используя JAVA

{_id:1001, "title":"abc", "author":"xyz"}

Что такое лучший способ обновить автора за 1 млн таких документов? Я узнал о неустановленном массовом обновлении в MongoDB. Как реализовать это с помощью драйвера Java от Mongo.

+0

Массовые операции используются для буферизации операций записи на стороне клиента и их выполнения партиями. Для достижения того, что вы хотите, выпустите комментарий для обновления 'db.books.update ({auther:" xyz "}, {$ set: {author:" whatever "}}, {multi: true})' –

+0

don ' Вы думаете, что массовая операция в этом случае быстрее? –

+0

Ну, я не вижу никакой добавленной стоимости, если просто хочу обновить одно поле для кучи документов. –

ответ

1
MongoClient mongo = new MongoClient("localhost", 27017); 
    DB db = (DB) mongo.getDB("test1"); 
    DBCollection collection = db.getCollection("collection"); 
    BulkWriteOperation builder = collection.initializeUnorderedBulkOperation(); 
    builder.find(new BasicDBObject("_id", 1001)).upsert() 
        .replaceOne(new BasicDBObject("_id", 1001).append("author", "newName")); 
    //append all other documents 
    builder.execute(); 
+0

@Orid Это то, о чем я говорю. –

+0

Но это заменяет весь документ и не обновляет его. После этой операции идентификатор «title» поля удаляется из документа. – user320550

Смежные вопросы