Lad os overveje, at vi har:
1 2 3
4 5 6
7 8 9
Du kan gemme matrix som indlejret array i mongodb på forskellige måder:
1. Repræsenter matrix som en-dimensionel matrix og gem sådan:
{
_id: "1",
matrix: [1,2,3,4,5,6,7,8,9],
width: 3, // or store just size in case of NxN
height: 3,
}
For derefter at øge det tredje element i matrixen skal du bruge følgende opdatering:
db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }
Denne tilgang er meget let, fordi du gemmer så minimalt med data som muligt, men du skal altid beregne elementets position for at opdatere, og du skal skrive yderligere kode for at deserialisere matrix i din driver.
2. Gem matrix på følgende måde:
{
_id: "1",
matrix: [
{xy: "0-0", v: 1},
{xy: "1-0", v: 2},
{xy: "2-0", v: 3},
{xy: "0-1", v: 4},
...
]
}
For derefter at øge tredje element i første række i matrix skal du bruge følgende opdatering:
db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }
Denne tilgang burde være enklere fra førersiden, men du bliver nødt til at gemme flere oplysninger i en database.
Vælg det, du bedst kan lide.