Подтвердить что ты не робот

Хранение и запрос JSON из базы данных

Я слышал о MongoDB, но я не уверен, что полностью понимаю концепцию.

Если у меня есть несколько объектов JSON, хранящихся в MongoDB:

[{"id": "peter",
  "age": "12",
  "gender": "male"},
 {"id": "gemma",
  "age": "12",
  "gender": "female"},
 {"id": "paul",
  "age": "13",
  "gender": "male"}]

Как я могу запросить все объекты JSON с помощью age >= 12?

4b9b3361

Ответ 1

Прежде всего, поймите, что JSON - это всего лишь метод сериализации. Сам по себе этот метод сериализации, вероятно, не должен определять вашу среду сохранения. Рассматривая свой вопрос на первый взгляд, кажется, что вы ищете типичную реляционную базу данных хранения, где вы можете использовать SQL для гибкого опроса ваших данных.

Сериализация/десериализация данных JSON для хранения в или для представления после извлечения из такой реляционной базы данных является тривиальной почти в любом языке программирования.

Теперь, если вам действительно нужно хранить различные фрагменты документов JSON (или любой другой вид документа), которые на самом деле не имеют фиксированной структуры, это действительно когда вы обычно начинаете смотреть на решение типа NoSQL, такое как MongoDB. Еще один возможный сценарий использования более популярных баз данных NoSQL - это когда вы имеете дело с огромными объемами данных и должны масштабироваться горизонтально (т.е. Данные настолько велики, что вам нужно масштабировать базу данных на нескольких серверах). Многие системы NoSQL делают это намного проще, чем традиционные реляционные БД. Разумеется, в таком сценарии вам необходимо будет оценить эти инструменты на основе предоставляемых им функций, позволяя вам наиболее удобно использовать для чтения, записи и запроса данные для вашего случая использования.

Ответ 2

MongoDB хранит данные в формате BSON, который похож на JSON. Вы можете хранить данные в формате JSON и делать запрос в любом поле. Вы можете даже индексировать в определенном поле, которое используется для основных запросов.

Вы не ограничены MongoDB, видя свой вопрос, я думаю, что любой из Магазинов для документов будет соответствовать вашим потребностям. Вы читаете больше здесь: - http://en.wikipedia.org/wiki/Document-oriented_database

Ответ 3

Начиная с 5.7, MySQL теперь имеет собственный тип данных JSON. Предполагая, что ваша таблица называется students, а столбец JSON называется student, в MySQL 5.7 ваш выбор может быть записан как

SELECT * FROM students WHERE JSON_EXTRACT(student, '$.age') = 12;

Ответ 4

Если все объекты имеют одинаковые поля (id, возраст, пол и т.д.), вы должны хранить объекты как строки некоторой реляционной базы данных (например, MySQL).