如何在 mongoimport 中指定多个嵌套文档?

我有以下 CSV:

matchId,score,players.Name,players.goals
2730319610399,5-0,John,3

当我在 Studio 3T 上使用 mongoimport 时,由于点符号,它以我需要的形式导入:

{ 
    "matchId" : "2730319610399","score" : "5-0","players" : {
        "Name" : "John","goals" : "3"
    }
}

我的问题是 csv 实际上还有一个我想在此导入中添加的播放器。 “玩家”数组有两个条目。

这是实际的 CSV 格式:

matchId,players.goals,3,Kyle,2

但这不起作用,我得到一个错误:

Every row will be parsed as one column.

The header contains a duplicate name "players.Name" in columns: [3,5]

是否可以格式化 CSV 以便我可以将多个值添加到“玩家”数组中?我正在考虑将其命名为 player[0].Name 和 player[1].Name

但这不起作用,因为它创建了两个数组:players[0] 和players[1]

这是我需要的数据库结构:

{ 
    "matchId" : "2730319610399","goals" : "3"
    },{
        "Name" : "Kyle","goals" : "2"
    }
}
o345768478 回答:如何在 mongoimport 中指定多个嵌套文档?

试试这个:

matchId,score,players.Name,players.Goals

2730319610399,5-0,John.Kyle,3.2

然后,使用:

db.collection.find().snapshot().forEach(function (test) {
   test.players.Name = test.players.Name.split('.');  
 db.whatevercollection.save(test); 
});

db.collection.find().snapshot().forEach(function (test) {
   test.players.Goals = test.players.Goals.split('.');  
 db.whatevercollection.save(test); 
});
,

好的,所以最好的选择是导入一个 json 文件而不是一个 csv。 例如:

{ "matchId":"2730319610399","score":"5-0","players":[{"Name":"John","Goals":"3"},{"Name":"Kyle","Goals":"2"}]}
{ "matchId":"2830319610399","score":"1-0","players":[{"Name":"Mauri","Goals":"1"}]}

然后使用 mongoimport 如下:

mongoimport --db=TestDB --collection=TestCol --type=json example_file.json

您应该在 Robo3T 上看到类似的内容:

robo3t_mongodb

本文链接:https://www.f2er.com/1204099.html

大家都在问