Laten we eens bedenken dat we hebben:
1 2 3
4 5 6
7 8 9
Je kunt matrix op verschillende manieren als embedded array in mongodb opslaan:
1. Stel matrix voor als eendimensionale array en sla deze als volgt op:
{
_id: "1",
matrix: [1,2,3,4,5,6,7,8,9],
width: 3, // or store just size in case of NxN
height: 3,
}
Om vervolgens het derde element van de matrix te verhogen, hebt u de volgende update nodig:
db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }
Deze aanpak is erg licht, omdat u zo min mogelijk gegevens opslaat, maar u moet altijd de positie van het element berekenen om bij te werken, en u moet extra code schrijven om de matrix in uw stuurprogramma te deserialiseren.
2.Bewaar matrix op de volgende manier:
{
_id: "1",
matrix: [
{xy: "0-0", v: 1},
{xy: "1-0", v: 2},
{xy: "2-0", v: 3},
{xy: "0-1", v: 4},
...
]
}
Om vervolgens het derde element van de eerste rij in de matrix te verhogen, hebt u de volgende update nodig:
db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }
Deze aanpak zou eenvoudiger moeten zijn vanaf de kant van de bestuurder, maar u zult meer informatie in een database moeten opslaan.
Kies wat je meer wilt.