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