Mongodb 从csv导入mongo collection,类似于;分组方式;事先

Mongodb 从csv导入mongo collection,类似于;分组方式;事先,mongodb,Mongodb,我想将csv文件导入mongo集合,但是,数据与我希望的不完全一致 我有以下csv文件:(简化) 导入后,我希望导入的集合如下所示: { city_id: 1, city_name: "city1", streets: [ { street_id: 1, street_name: street1

我想将csv文件导入mongo集合,但是,数据与我希望的不完全一致

我有以下csv文件:(简化)

导入后,我希望导入的集合如下所示:

    {
        city_id: 1,
        city_name: "city1",
        streets: [
                    {
                     street_id: 1,
                     street_name: street1 
                    },
                    {
                     street_id: 2,
                     street_name: street2 
                    },
                    {
                     street_id: 3,
                     street_name: street3 
                    },
                    {
                     street_id: 4,
                     street_name: street4
                    },
                    {
                     street_id: 5,
                     street_name: street5
                    }
                ]
    },
    {
        city_id: 2,
        city_name: "city2",
        streets: [
                    {
                     street_id: 1,
                     street_name: street1 
                    },
                    {
                     street_id: 2,
                     street_name: street2 
                    },
                    {
                     street_id: 3,
                     street_name: street3 
                    },
                    {
                     street_id: 4,
                     street_name: street4
                    },
                    {
                     street_id: 5,
                     street_name: street5
                    },
                    {
                     street_id: 6,
                     street_name: street6
                    },
                    {
                     street_id: 7,
                     street_name: street7
                    }

                ]
    }
这能以相对简单的方式完成吗

谢谢你的帮助

  • 导入数据
  • mongoimport.exe/文件:city.csv/类型:csv/headerline

  • 使用聚合框架合并并重塑文档

    db.city.aggregate([
    {$group:{ 
        "_id":{"id":"$city_id","city_name":"$city_name" },
        "streets": { $push:  { street_id: "$street_id", street_name: "$street_name" } }
        }},
    {$project:{
        "_id":0,
        "city_id":"$_id.id",
        "city_name":"$_id.city_name",
        "streets":1 
        }},
        {$out:"cities"}
    ])
    
  • 检查城市收集结果

  • 导入数据
  • mongoimport.exe/文件:city.csv/类型:csv/headerline

  • 使用聚合框架合并并重塑文档

    db.city.aggregate([
    {$group:{ 
        "_id":{"id":"$city_id","city_name":"$city_name" },
        "streets": { $push:  { street_id: "$street_id", street_name: "$street_name" } }
        }},
    {$project:{
        "_id":0,
        "city_id":"$_id.id",
        "city_name":"$_id.city_name",
        "streets":1 
        }},
        {$out:"cities"}
    ])
    
  • 检查城市收集结果


  • 令人惊讶的是,它成功了,但是我无法验证它是否100%没有bug,因为收集的文档长度超过45000个:)嗯,仅针对随机样本,如cityID:308374563:-)我不明白为什么我会被否决。然而:/惊奇的是,它成功了,但是,我无法验证它是否100%没有bug,因为收集的文档长度超过45000个:)嗯,仅针对随机样本,如cityID:308374563:-)我不明白为什么我会被否决,但是:/