从一个集合复制(更新,如果存在)文档到另一个集合

时间:2016-10-16 11:33:23

标签: java mongodb

我想通过java将文档从一个mongodb集合复制到另一个集合(或者如果存在则更新)。

我不想追加现有集合的每个字段,然后插入另一个字段。我怎么能这样做?

以下是两个集合,tempnationaltemp只有一个集合,我必须将其复制到national或更新(如果存在)。

MongoCursor<Document> cursor = db.getCollection("temp").find().iterator();
try {
    Document doc = new Document(cursor.next());
    Document new_doc = new Document("$set",doc);
    doc.append("booking_id",cursor.next().get("booking_id"));
    MongoCursor<Document>  cursor1 = db.getCollection("national").find(doc).iterator();
    Bson filter = Filters.eq("booking_id", args);
    Bson update = Filters.elemMatch("booking_id", filter);
    UpdateOptions options = new UpdateOptions().upsert(true);
    national.updateOne(filter, new_doc, options);
}
finally {
    cursor.close();
}

1 个答案:

答案 0 :(得分:0)

如果您想将Doc2替换为Doc1,您可以使用replaceOne()

replaceOne()使用替换文档替换集合中与筛选器匹配的第一个匹配文档。

this answer