MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cấu trúc ma trận tăng dần trong MongoDb

Hãy xem xét chúng tôi có:

1 2 3
4 5 6
7 8 9

Bạn có thể lưu trữ ma trận dưới dạng mảng được nhúng trong mongodb theo các cách khác nhau:

1. Biểu diễn ma trận dưới dạng mảng một chiều và lưu trữ như sau:

{
  _id: "1",
  matrix: [1,2,3,4,5,6,7,8,9],
  width: 3, // or store just size in case of NxN
  height: 3,
}

Sau đó, để tăng phần tử thứ ba của ma trận, bạn sẽ cần cập nhật sau:

db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }

Cách tiếp cận này rất nhẹ, vì bạn lưu trữ dữ liệu tối thiểu nhất có thể, nhưng bạn sẽ luôn cần tính toán vị trí của phần tử để cập nhật và bạn sẽ cần viết mã bổ sung để giải mã ma trận trong trình điều khiển của mình.

2. lưu trữ ma trận theo cách sau:

{
  _id: "1",
  matrix: [
  {xy: "0-0", v: 1},
  {xy: "1-0", v: 2},
  {xy: "2-0", v: 3},
  {xy: "0-1", v: 4},
  ...
  ]
}

Sau đó, để tăng phần tử thứ ba của hàng đầu tiên trong ma trận, bạn sẽ cần cập nhật sau:

db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }

Cách tiếp cận này sẽ đơn giản hơn từ phía trình điều khiển, nhưng bạn sẽ cần lưu trữ nhiều thông tin hơn trong cơ sở dữ liệu.

Chọn bất cứ thứ gì bạn thích hơn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo tìm các bản sao cho các mục nhập cho hai hoặc nhiều trường

  2. Lấy các tài liệu cần thiết từ cả hai bộ sưu tập trong một truy vấn trong MongoDB-3.2.7

  3. Mongo Json Schema Validator AnyOf không hoạt động

  4. Đường ray tùy chỉnh / tên mối quan hệ mongoid không hoạt động

  5. Làm thế nào để sắp xếp trong mongoose?