Tài liệu nhúng truy vấn MongoDB

Trong phần hướng dẫn trước, chúng ta đã học về cách truy vấn tài liệu, về các toán tử logic và cách chọn các trường cụ thể. Vui lòng kiểm tra xem

Tài liệu nhúng hoặc lồng nhau

Đối với hướng dẫn này, hãy tiếp tục và tạo một số tài liệu được nhúng. Vì vậy, hãy kết nối với máy chủ MongoDB của bạn và chạy lệnh sau để chèn một số tài liệu vào bộ sưu tập hình dạng

> db.shapes.insertMany[[
  {
    "shape": "rectangle",
    "item": "Rect 1",
    "dim": {
      "length": 10,
      "breadth": 20,
      "uom": "cm"
    }
  },
  {
    "shape": "rectangle",
    "item": "Rect 2",
    "dim": {
      "length": 20,
      "breadth": 30,
      "uom": "cm"
    }
  },
  {
    "shape": "rectangle",
    "item": "Rect 3",
    "dim": {
      "length": 5,
      "breadth": 10,
      "uom": "cm"
    }
  },
  {
    "shape": "square",
    "item": "Sq 1",
    "dim": {
      "side": 10.5,
      "uom": "cm"
    }
  },
  {
    "shape": "square",
    "item": "Sq 2",
    "dim": {
      "side": 20,
      "uom": "cm"
    }
  },
  {
    "shape": "square",
    "item": "Sq 3",
    "dim": {
      "side": 15,
      "uom": "inch"
    }
  },
  {
    "shape": "square",
    "item": "Sq 4",
    "dim": {
      "side": 25.5,
      "uom": "inch"
    }
  }
]];

Chúng tôi đã học cách tạo tài liệu nhúng trong hướng dẫn Chèn tài liệu. Vui lòng kiểm tra xem

Được rồi, hãy bắt đầu đơn giản sau đó tiến tới các vấn đề nâng cao

Tìm tất cả các hình chữ nhật

Để tìm tất cả các tài liệu trong bộ sưu tập shapes đại diện cho một hình chữ nhật, chúng ta phải chạy lệnh sau

> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}

Tìm hình vuông có cạnh ít nhất 20 cm

Được rồi, chúng tôi hiện đang chuyển sang các tài liệu được nhúng

Đầu tiên chúng ta phải kiểm tra shape bằng với square

Tiếp theo, chúng ta phải kiểm tra trường side bên trong trường

> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
0. Vì vậy, chúng tôi phải sử dụng
> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
1 trong bộ lọc của mình

Chúng ta phải đảm bảo rằng cạnh đó ít nhất là 20 cm, vì vậy, chúng ta phải sử dụng toán tử lớn hơn hoặc bằng

> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
0 cho trường
> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
1

Và đối với đơn vị đo lường

> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
2, chúng ta phải kiểm tra
> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
3 bằng với
> db.shapes.find[{ "shape": "rectangle" }].pretty[];


{
  "_id" : ObjectId["5d175dffba3250e57f98faca"],
  "shape" : "rectangle",
  "item" : "Rect 1",
  "dim" : {
    "length" : 10,
    "breadth" : 20,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facb"],
  "shape" : "rectangle",
  "item" : "Rect 2",
  "dim" : {
    "length" : 20,
    "breadth" : 30,
    "uom" : "cm"
  }
}
{
  "_id" : ObjectId["5d175dffba3250e57f98facc"],
  "shape" : "rectangle",
  "item" : "Rect 3",
  "dim" : {
    "length" : 5,
    "breadth" : 10,
    "uom" : "cm"
  }
}
4

Tài liệu nhúng trong MongoDB là gì?

Tài liệu nhúng là một cách hiệu quả và rõ ràng để lưu trữ dữ liệu liên quan, đặc biệt là dữ liệu thường xuyên được truy cập cùng nhau . Nói chung, khi thiết kế lược đồ cho MongoDB, bạn nên nhúng theo mặc định và chỉ sử dụng các tham chiếu và phép nối phía ứng dụng hoặc phía cơ sở dữ liệu khi chúng đáng giá.

Làm cách nào để chèn tài liệu lồng nhau trong MongoDB?

Như chúng ta biết rằng trong mongo shell, các tài liệu được biểu diễn bằng dấu ngoặc nhọn [ {} ] và bên trong các dấu ngoặc nhọn này, chúng ta có các cặp trường-giá trị. Bây giờ bên trong các trường này, chúng ta có thể nhúng tài liệu khác bằng cách sử dụng dấu ngoặc nhọn {} và tài liệu này có thể chứa các cặp giá trị trường hoặc tài liệu phụ khác.

Truy vấn lồng nhau trong MongoDB là gì?

MongoDB cung cấp một tính năng được gọi là tài liệu nhúng hoặc tài liệu lồng nhau. Tài liệu nhúng hoặc tài liệu lồng nhau là những loại tài liệu chứa tài liệu bên trong tài liệu khác .

Làm cách nào để truy vấn một mảng đối tượng trong MongoDB?

Để tìm kiếm mảng đối tượng trong MongoDB, bạn có thể sử dụng toán tử $elemMatch . Toán tử này cho phép chúng ta tìm kiếm nhiều hơn một thành phần từ một đối tượng mảng.

Chủ Đề