Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tạo JSON phân cấp (hierarchical) trong MongoDB

MongoDB cho phép tạo cấu trúc JSON phân cấp sâu thông qua lồng tài liệu và mảng tài liệu. Cú pháp tổng quát:

db.demo716.insertOne({
  yourFieldName1,
  yourFieldName2,
  "fieldName": {
    yourFieldName1,
    yourFieldName2,
    "fieldname": [
      { yourFieldName1, yourFieldName2, ..., N }
    ]
  }
});

Ví dụ thực tế - hồ sơ người dùng với thông tin giảng viên:

> db.demo716.insertOne({
...   "id": 101,
...   "UserEmailId": "John@gmail.com",
...   "UserPassword": "123456",
...   "UserInformation": {
...     "UserName": "Chris",
...     "UserAge": 26,
...     "UserCountryName": "US",
...     "OtherInformation": [
...       { "TeacherName":"Robert", "SubjectName":"MongoDB", "CollegeName":"MIT" }
...     ]
...   }
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea9b1ff85324c2c98cc4c2f") }

Hiển thị dữ liệu phân cấp:

> db.demo716.find().pretty();
{ "_id" : ObjectId("5ea9b1ff85324c2c98cc4c2f"), "id" : 101, "UserEmailId" : "John@gmail.com", "UserPassword" : "123456", "UserInformation" : { "UserName" : "Chris", "UserAge" : 26, "UserCountryName" : "US", "OtherInformation" : [ { "TeacherName" : "Robert", "SubjectName" : "MongoDB", "CollegeName" : "MIT" } ] } }

Ưu điểm mô hình phân cấp:

  • Dữ liệu liên quan lưu cùng nhau - đọc một lần lấy hết
  • Không cần JOIN như SQL
  • Linh hoạt schema - mỗi tài liệu có thể khác cấu trúc
  • Phù hợp dữ liệu phi chuẩn hóa (denormalized)