将数据从一个集合复制到另一个集合-MongoDB

将数据从一个集合复制到另一个集合-MongoDB,mongodb,Mongodb,我想使用MongoDB将数据从一个集合(集合A)复制到另一个集合(集合B)。我还希望保留集合A中的现有数据。[我使用的是MongoDB shell版本4.4.3,带有Node.js和Express应用程序的GoormIDE) 据我所知,$merge运算符将是最合适的,但我一直遇到错误。我一直在使用以下代码: db.getSiblingDB("<databasename>").<sourcecollection>.aggregate( [ { $

我想使用MongoDB将数据从一个集合(集合A)复制到另一个集合(集合B)。我还希望保留集合A中的现有数据。[我使用的是MongoDB shell版本4.4.3,带有Node.js和Express应用程序的GoormIDE)

据我所知,$merge运算符将是最合适的,但我一直遇到错误。我一直在使用以下代码:

db.getSiblingDB("<databasename>").<sourcecollection>.aggregate( [     { $match : {} },     { $merge : "<destinationnewcollection>" } ] )
其他运算符(如add)似乎工作正常,因此我对这一运算符的想法感到迷茫。是否知道我做错了什么?

根据
{$merge:”“}
应该可以工作。但是,看起来缩写形式不可用,所以请使用

db.getSiblingDB("<databasename>").<sourcecollection>.aggregate([
   { $unset: "_id" },
   { $merge: { into: "<destinationnewcollection>" } } 
])
db.getSiblingDB(“”..聚合([
{$unset:“_id”},
{$merge:{into::}
])

db.getSiblingDB(“”..聚合([
{$unset:“_id”},
{$merge:{db:,coll:}
])
您可以跳过
{$match:{}}
-它什么也不做。删除
\u id
字段可以确保在任何情况下都添加了所有文档,这也会加快操作

db.getSiblingDB("<databasename>").<sourcecollection>.aggregate([
   { $unset: "_id" },
   { $merge: { into: "<destinationnewcollection>" } } 
])
db.getSiblingDB("<databasename>").<sourcecollection>.aggregate([
   { $unset: "_id" },
   { $merge: { db: "<databasename>", coll: "<destinationnewcollection>" } } 
])