Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
对象数据转换的Mongodb数组_Mongodb_Mongodb Query - Fatal编程技术网

对象数据转换的Mongodb数组

对象数据转换的Mongodb数组,mongodb,mongodb-query,Mongodb,Mongodb Query,这是我收藏的一份文件。我想将此格式的数据转换为 { "_id" : ObjectId("5e311e8bb94999f1be0d5ead"), "dealer_code" : "123", "mappinginfo" : [ { "territory" : "MORADABAD", "area" : "UPH", "zone" : "N" } ],

这是我收藏的一份文件。我想将此格式的数据转换为

{ 
    "_id" : ObjectId("5e311e8bb94999f1be0d5ead"), 
    "dealer_code" : "123", 
    "mappinginfo" : [
        {
            "territory" : "MORADABAD", 
            "area" : "UPH", 
            "zone" : "N"
        }
    ], 
    "active" : NumberInt(1), 
}
像这样的数据

{ 
    "_id" : ObjectId("5e311e8bb94999f1be0d5ead"), 
    "dealer_code" : "123", 
    "territory" : "MORADABAD", 
    "area" : "UPH", 
    "zone" : "N"
    "active" : NumberInt(1), 
}
利用

解决方案- 解释 聚合管道顾名思义,作用于管道中的数据。管道具有输入、运算符和输出。例如上面的例子-

  • 第一阶段是一个展开阶段,将提供整个收集。“展开”操作符将对单个文档进行迭代,并为每个文档创建与mappinginfo字段中元素数量相同的副本。对于您的情况,它只会创建一个副本。在展开阶段之后,生成的文档将如下所示-
请注意,mappinginfo不再是一个列表

  • 下一阶段是投影阶段$project operator只需将上述文档列表作为输入,对于每个文档,它要么简单地按原样投影字段,要么根据当前文档中的可用内容更改字段的值<代码>{“活动”:1}表示按原样投影值<代码>{“zone”:“$mappinginfo.zone”}意味着在根级别的名称zone下映射mappinginfo字段内的zone值
有关两个运营商的更多信息- - -以下是查询

db.collection.aggregate([
  {
    $unwind: "$mappinginfo"
  },
  {
    $project: {
      _id: 1,
      active: 1,
      dealer_code: 1,
      territory: "$mappinginfo.territory",
      area: "$mappinginfo.area",
      zone: "$mappinginfo.zone",

    }
  },

])
db.test.aggregate([
  { $unwind: "$mappinginfo" },
  { $project: {
    dealer_code: 1,
    territory: "$mappinginfo.territory",
    area: "$mappinginfo.area",
    zone: "$mappinginfo.zone",
    active: 1
  }}
]);
[{ 
    "_id" : ObjectId("5e311e8bb94999f1be0d5ead"), 
    "dealer_code" : "123",
    "mappinginfo": {
        "territory" : "MORADABAD", 
        "area" : "UPH", 
        "zone" : "N"
    }
    "active" : NumberInt(1), 
}]
db.collection.aggregate([
  {
    $unwind: "$mappinginfo"
  },
  {
    $project: {
      _id: 1,
      active: 1,
      dealer_code: 1,
      territory: "$mappinginfo.territory",
      area: "$mappinginfo.area",
      zone: "$mappinginfo.zone",

    }
  },

])