Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将文档从一个集合复制(如果存在则更新)到另一个集合_Java_Mongodb - Fatal编程技术网

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

Java 将文档从一个集合复制(如果存在则更新)到另一个集合,java,mongodb,Java,Mongodb,我想通过java将文档从mongodb的一个集合复制到另一个集合(或者更新,如果存在) 我不想附加现有集合的每个字段,然后插入到另一个字段。我该怎么做 这里有两个系列,temp和nationaltemp只有一个集合,我必须将其复制到national或更新(如果存在) MongoCursor<Document> cursor = db.getCollection("temp").find().iterator(); try { Document doc = new Docume

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

我不想附加现有集合的每个字段,然后插入到另一个字段。我该怎么做

这里有两个系列,
temp
national
temp
只有一个集合,我必须将其复制到
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();
}
MongoCursor=db.getCollection(“temp”).find().iterator();
试一试{
Document doc=新文档(cursor.next());
单据新建\单据=新单据($set),单据);
doc.append(“booking_id”,cursor.next().get(“booking_id”));
MongoCursor1=db.getCollection(“national”).find(doc.iterator();
Bson filter=Filters.eq(“预订id”,args);
Bson update=Filters.elemMatch(“预订id”,filter);
UpdateOptions=new UpdateOptions().upsert(true);
national.updateOne(过滤器、新文档、选项);
}
最后{
cursor.close();
}

如果要用Doc1替换Doc2,可以使用replaceOne()

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


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

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


如果存在,您是指用A替换B,如果不存在,则创建一个新的?是的,其中A是集合“临时”中的文档,B是集合“国家”中的文档,因此您是指用A替换B(如果存在),或者如果不存在,则创建一个新文档?是的,其中A是集合“临时”中的文档,B是集合“国家”中的文档我正在尝试更新方法(使用upsert:true选项)我正在尝试更新方法(使用upsert:true选项)