source

데이터베이스에서 JSON 저장 및 쿼리

factcode 2023. 3. 25. 11:55
반응형

데이터베이스에서 JSON 저장 및 쿼리

MongoDB에 대해 들어본 적은 있지만, 그 개념을 완전히 이해하지는 못할 것 같습니다.

MongoDB에 여러 JSON 오브젝트가 저장되어 있는 경우:

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

모든 JSON 개체를 쿼리하려면 어떻게 해야 합니까?age >= 12?

우선 JSON은 단순한 시리얼라이제이션 기술임을 이해해 주십시오.이 시리얼화 방법 자체는 영속성 미디어를 결정하지 않을 수 있습니다.표면적으로 질문을 살펴보면 SQL을 사용하여 데이터에 대해 유연한 방식으로 쿼리할 수 있는 일반적인 관계형 스토리지 데이터베이스를 찾고 있는 것 같습니다.

이러한 관계형 데이터베이스에서 검색한 후에 JSON 데이터를 저장하거나 표시하기 위해 직렬화/비직렬화하는 것은 거의 모든 프로그래밍 언어에서 사소한 일입니다.

JSON 문서의 다양한 부분(또는 다른 종류의 문서)을 실제로 저장해야 하는 경우 MongoDB와 같은 NoSQL 유형의 솔루션을 검토하기 시작합니다.보다 일반적인 NoSQL 데이터베이스를 사용할 때 생각할 수 있는 또 하나의 시나리오는 대량의 데이터를 처리할 때 수평으로 확장해야 하는 경우입니다(데이터가 너무 커서 여러 서버에 걸쳐 데이터베이스를 확장해야 합니다).많은 NoSQL 시스템은 기존의 관계형 DB보다 훨씬 쉽게 이 작업을 수행할 수 있도록 합니다.물론 이러한 시나리오에서는 사용 사례에 가장 유용한 방식으로 데이터를 읽고, 쓰고, 쿼리할 수 있도록 제공하는 기능에 따라 이러한 도구를 평가해야 합니다.

5.7부터 MySQL에는 네이티브 JSON 데이터형이 있습니다.테이블이 호출된 경우studentsJSON 컬럼은studentMySQL 5.7에서는 선택 내용을 다음과 같이 쓸 수 있습니다.

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

MongoDB는 JSON과 유사한 BSON 형식으로 데이터를 저장합니다.데이터를 JSON 형식으로 저장할 수 있으며 모든 필드에 대해 조회를 수행할 수 있습니다.주요 조회에 사용되는 특정 필드를 인덱싱할 수도 있습니다.

당신은 MongoDB에만 국한된 것이 아닙니다.당신의 질문을 보니 Document Store가 당신의 요구에 맞는 것 같습니다.자세한 내용은 이쪽:- http://en.wikipedia.org/wiki/Document-oriented_database

모든 객체의 필드(ID, 연령, 성별 등)가 동일한 경우 객체를 일부 관계형 데이터베이스(예: MySQL)의 행으로 저장해야 합니다.

의 mongodb 쉘 쿼리는 다음과 같습니다.

db.people.find({"age": {gt:12 }});

Couchbase N1QL 쿼리는 다음과 같습니다.

SELECT * FROM people WHERE age >= 12;

상세한 것에 대하여는, https://query-tutorial.couchbase.com/tutorial/#1 을 참조해 주세요.

언급URL : https://stackoverflow.com/questions/19189849/storing-and-querying-json-from-a-database

반응형