У меня есть набор данных, который выглядит следующим образом:Вставка списка объектов в качестве отдельных документов Mongo с PyMongo
[{
"myhost1.com": {
"services": [
{
"environment": "prod",
"__module__": "polling_functions",
"serviceName": "service-a",
"__class__": "app"
}
]
},
"myhost2.com": {
"services": [
{
"environment": "prod",
"__module__": "polling_functions",
"serviceName": "service-a",
"__class__": "db"
}
]
},
...
То, что я хочу сделать, это вставить каждый из них в виде отдельного документа, в моем MongoDB. После чистки клавиш для удаления .
символов, я попробовал две вставки:
db.hostuse.insert_many(dataset)
и
for key in dataset[0]:
db.hostuse.insert_one(dataset[0][key])
Ни один из них сделать то, что я хочу, хотя. Первый вставляет один документ с ключами, являющимися именами хостов. Второй вставляет несколько документов, но без имен хостов; вместо этого каждый ключ равен services
.
Как я могу преобразовать этот набор данных, чтобы передать его моему MongoDB, и привести к нескольким документам, каждый с ключом hostname
?
Это в основном работает, но хранить документ как: '{ "_id": ObjectId ("584f175ee281af385ce8a6bc"), "услуги": { "услуги": [ { ... } ] }, "Имя хоста": "myhost1.com" } '- обратите внимание на дублирующие "услуги" ключ/поле. – MrDuk
Для моих целей, поскольку я могу предположить, что в каждом разделе 'host' существует один раздел' services', изменяющий код для использования '({'hostname': hostname, services.keys() [0]: services.values () [0]}) 'работал для меня – MrDuk