sql >> Database >  >> NoSQL >> MongoDB

Increment matrixstructuur in MongoDb

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.



  1. Hoe gebruik ik verbindingspools op de juiste manier in redis?

  2. Multi-collectie, multi-document 'transacties' in MongoDB

  3. Haal de waarden op uit de array en sla deze op in een csv-bestand met MongoDB

  4. Hoe kan ik een mislukte gebeurtenis voor opnieuw verbinden van mongodb detecteren?