sql >> Databáze >  >> NoSQL >> MongoDB

Struktura přírůstkové matice v MongoDb

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.



  1. Mongoose .save() se neukládá do databáze?

  2. Mongoose vytvoří připojení pro podporu více nájemců v node.js

  3. Nakonfigurujte časový limit Jedisů

  4. Jak mám uložit pole v redis?