MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Upsert em massa com o driver MongoDB Java 3.0


Você ainda pode usar todas as funcionalidades, só que o BulkWrites agora tem uma sintaxe diferente:
    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);

Então você usa o UpdateOneModel ( ou para muitos se você quiser ) e defina o UpdateOptions como o terceiro argumento para o construtor.

Leva algum tempo para se acostumar, mas é basicamente apenas construir "Listas" com a mesma sintaxe de outros lugares. Acho que esse é o principal motivo da mudança.