Эта серия статей была переписана в середине 2017 года с актуальной информацией и свежими примерами.
Большинство реляционных баз данных используют SQL для манипулирования данными и схемами. Однако каждый поставщик СУБД разработал свой собственный диалект SQL. Это означает, что обмен данными между различными платформами СУБД требует преобразования данных. Это в основном достигается с помощью сторонних инструментов.
С базами данных NoSQL большинство имеют встроенную поддержку JSON в качестве формата импорта. Это означает, что вы можете экспортировать данные в формате JSON из одной базы данных NoSQL, например Mongo, и импортировать те же данные в другую базу данных NoSQL, например RethinkDB, без каких-либо преобразований.
В этом примере мы рассмотрим файл JSON, созданный с помощью генератора, который можно импортировать в базу данных NoSQL, такую как Mongo.
products.json:
[{
"_id": {
"$oid": "5968dd23fc13ae04d9000001"
},
"product_name": "sildenafil citrate",
"supplier": "Wisozk Inc",
"quantity": 261,
"unit_cost": "$10.47"
}, {
"_id": {
"$oid": "5968dd23fc13ae04d9000002"
},
"product_name": "Mountain Juniperus ashei",
"supplier": "Keebler-Hilpert",
"quantity": 292,
"unit_cost": "$8.74"
}, {
"_id": {
"$oid": "5968dd23fc13ae04d9000003"
},
"product_name": "Dextromathorphan HBr",
"supplier": "Schmitt-Weissnat",
"quantity": 211,
"unit_cost": "$20.53"
}]
Чтобы импортировать эти данные в MongoDB, используйте следующую команду:
mongoimport --db api --collection products --drop --jsonArray --file products.json
После завершения импорта войдите в базу данных и убедитесь, что данные действительно были импортированы:
db.products.find()
# output
{ "_id" : ObjectId("5968dd23fc13ae04d9000001"), "product_name" : "sildenafil citrate", "supplier" : "Wisozk Inc", "quantity" : 261, "unit_cost" : "$10.47" }
{ "_id" : ObjectId("5968dd23fc13ae04d9000002"), "product_name" : "Mountain Juniperus ashei", "supplier" : "Keebler-Hilpert", "quantity" : 292, "unit_cost" : "$8.74" }
{ "_id" : ObjectId("5968dd23fc13ae04d9000003"), "product_name" : "Dextromathorphan HBr", "supplier" : "Schmitt-Weissnat", "quantity" : 211, "unit_cost" : "$20.53" }
Для других баз данных NoSQL, проверьте их справочное руководство о том, как сделать то же самое.
Вот другие примеры из этой серии: