Статьи

Файл базы данных JSON

Эта серия статей была переписана в середине 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, проверьте их справочное руководство о том, как сделать то же самое.

Вот другие примеры из этой серии: