如何将来自三个集合的数据文档合并为一个集合

gat*_*bar 2 mongodb mongodb-query aggregation-framework

我在MongoDB中有以下三个集合

fd2k10sample
fd2k16sample
fd2ksample
Run Code Online (Sandbox Code Playgroud)

它们中的每个文档都具有相同的结构,因此没有以下结构问题:

fd2ksample

id  cat1    cat2     cat3   cat4
1   doza    moza     goza   hoza
2   beta    geta     jeta   leta
3   huggy   muggy    guggy  luggy
Run Code Online (Sandbox Code Playgroud)

fd2k10sample

id cat1     cat2    cat3    cat4
1  prizzy   mizzy   tizzy   hizzy
2  chuta    buta    guta    tuta
3  befer    lefer   gefer   tefer
Run Code Online (Sandbox Code Playgroud)

fd2k16sample

id  cat1   cat2   cat3   cat4
1   poopa  doopa  hoopa  loopa
2   nijjy  pijjy  hijjy  tijjy
3   ufha   puhfa  duhfa  tuhfa
Run Code Online (Sandbox Code Playgroud)

我如何像这样组合它们:

fd2kfullsample

id   cat1  cat2  cat3  cat4
1   doza    moza     goza   hoza
2   beta    geta     jeta   leta
3   huggy   muggy    guggy  luggy
1   poopa  doopa     hoopa  loopa
2   nijjy  pijjy     hijjy  tijjy
3   ufha   puhfa     duhfa  tuhfa
1   poopa  doopa     hoopa  loopa
2   nijjy  pijjy     hijjy  tijjy
3   ufha   puhfa     duhfa  tuhfa
Run Code Online (Sandbox Code Playgroud)

如何使用MongoDB 3.4版中的几个命令来执行此操作?

该解决方案给出的答案是关于合并数据文档,而我想合并数据文档而不合并它们。以下不是重复项,而是一个完全不同的问题: MongoDB:将多个集合中的数据组合成一个。

fel*_*lix 5

您可以使用copyTo()轻松实现

要将3个集合合并为一个,只需运行以下命令:

db.fd2k10sample.copyTo("fd2kfullsample")
db.fd2k16sample.copyTo("fd2kfullsample")
db.fd2ksample.copyTo("fd2kfullsample")
Run Code Online (Sandbox Code Playgroud)