Předpokládejme, že máme:
1 2 3
4 5 6
7 8 9
Matici můžete uložit jako vložené pole v mongodb různými způsoby:
1.Představte matici jako jednorozměrné pole a uložte ji takto:
{
_id: "1",
matrix: [1,2,3,4,5,6,7,8,9],
width: 3, // or store just size in case of NxN
height: 3,
}
Poté pro zvýšení třetího prvku matice budete potřebovat následující aktualizaci:
db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }
Tento přístup je velmi lehký, protože ukládáte co minimum dat, ale budete muset vždy vypočítat polohu prvku, který chcete aktualizovat, a budete muset napsat další kód pro deserializaci matice ve vašem ovladači.
2. Uložte matici následujícím způsobem:
{
_id: "1",
matrix: [
{xy: "0-0", v: 1},
{xy: "1-0", v: 2},
{xy: "2-0", v: 3},
{xy: "0-1", v: 4},
...
]
}
Pak pro zvýšení třetího prvku prvního řádku v matici budete potřebovat následující aktualizaci:
db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }
Tento přístup by měl být ze strany ovladače jednodušší, ale budete muset uložit více informací do databáze.
Vyberte si, co se vám líbí víc.