使用不同集合中的文档中的某些字段在另一个集合中创建文档

时间:2015-09-23 11:59:49

标签: node.js mongodb mongoose

我在集合A中有一个文件如下:

null

我需要使用上面的文档在集合B中创建文档:

{
  [{
     "_id" : ObjectId("123"),
     "prcCode" : 1,
     "communication" : [
       {
            "communicationCode" : 1,
            "communicationDesc" : "SMS"
       },
       {
            "communicationCode" : 2,
            "communicationDesc" : "Email"
       }
     ]
   }]
}

任何人都可以帮助我创造,因为我无法弄明白。 提前谢谢

1 个答案:

答案 0 :(得分:0)

使用$out获取聚合管道返回的文档,并将它们写入指定的集合。检查以下查询:

db.collectionA.aggregate({
  "$unwind": "$communication"
}, {
  "$project": {
    "prcCode": 1,
    "communicationCode": "$communication.communicationCode",
    "communicationDesc": "$communication.communicationDesc",
    "_id": 0
  }
}, {
  "$out": "collectionB"
})