Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Arrays 如何在Mongodb中展开两个阵列并清晰地投影它们?_Arrays_Mongodb_Project - Fatal编程技术网

Arrays 如何在Mongodb中展开两个阵列并清晰地投影它们?

Arrays 如何在Mongodb中展开两个阵列并清晰地投影它们?,arrays,mongodb,project,Arrays,Mongodb,Project,我想在一个文档中展开两个数组。现在我想用定义其类型的额外字段将它们单独投影,如下所述。假设已清洗,则类型应定义为清洗;如果已安装,则类型应定义为已安装 该文件的格式如下: { "install":["Date1"] "wash": ["Date1", "Date2", "Date3"] } 我想要的输出如下: { "install": "Date1" "type": "install" }, { "wash": "Date1", "type": "wash" }, { "wash":

我想在一个文档中展开两个数组。现在我想用定义其类型的额外字段将它们单独投影,如下所述。假设已清洗,则类型应定义为清洗;如果已安装,则类型应定义为已安装

该文件的格式如下:

    {
"install":["Date1"]
"wash": ["Date1", "Date2", "Date3"]
}
我想要的输出如下:

{
"install": "Date1"
"type": "install"
},
{
"wash": "Date1",
"type": "wash"
},
{
"wash": "Date2",
"type": "wash"
},
{
"wash": "Date3",
"type":"wash"
}

此聚合返回所需的结果:

db.test.aggregate( [
  { 
      $facet: {
          install: [
              { $unwind: "$install" },
              { $project: { type: "install", install: 1, _id: 0 } }
          ],
          wash: [
              { $unwind: "$wash" },
              { $project: { type: "wash", wash: 1, _id: 0 } }
          ]
      } 
  },
  {
      $project: { result: { $concatArrays: [ "$install", "$wash" ] } }
  }
] )

此聚合返回所需的结果:

db.test.aggregate( [
  { 
      $facet: {
          install: [
              { $unwind: "$install" },
              { $project: { type: "install", install: 1, _id: 0 } }
          ],
          wash: [
              { $unwind: "$wash" },
              { $project: { type: "wash", wash: 1, _id: 0 } }
          ]
      } 
  },
  {
      $project: { result: { $concatArrays: [ "$install", "$wash" ] } }
  }
] )