Mari kita anggap kita memiliki:
1 2 3
4 5 6
7 8 9
Anda dapat menyimpan matriks sebagai array tersemat di mongodb dengan berbagai cara:
1.Representasikan matriks sebagai array satu dimensi dan simpan seperti ini:
{
_id: "1",
matrix: [1,2,3,4,5,6,7,8,9],
width: 3, // or store just size in case of NxN
height: 3,
}
Kemudian untuk menambah elemen ketiga dari matriks, Anda memerlukan pembaruan berikut:
db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }
Pendekatan ini sangat ringan, karena Anda menyimpan data seminimal mungkin, tetapi Anda harus selalu menghitung posisi elemen untuk diperbarui, dan Anda perlu menulis kode tambahan untuk membatalkan serialisasi matriks di driver Anda.
2. Simpan matriks dengan cara berikut:
{
_id: "1",
matrix: [
{xy: "0-0", v: 1},
{xy: "1-0", v: 2},
{xy: "2-0", v: 3},
{xy: "0-1", v: 4},
...
]
}
Kemudian untuk menambah elemen ketiga dari baris pertama dalam matriks, Anda memerlukan pembaruan berikut:
db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }
Pendekatan ini seharusnya lebih sederhana dari sisi driver, tetapi Anda perlu menyimpan lebih banyak informasi dalam database.
Pilih apa pun yang lebih Anda sukai.