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.