MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Incrémenter la structure de la matrice dans MongoDb

Considérons que nous avons :

1 2 3
4 5 6
7 8 9

Vous pouvez stocker la matrice en tant que tableau intégré dans mongodb de différentes manières :

1.Représentez la matrice sous la forme d'un tableau unidimensionnel et stockez-la comme ceci :

{
  _id: "1",
  matrix: [1,2,3,4,5,6,7,8,9],
  width: 3, // or store just size in case of NxN
  height: 3,
}

Ensuite, pour incrémenter le troisième élément de la matrice, vous aurez besoin de la mise à jour suivante :

db.matrix.update({_id: 1}, { $inc : { "matrix.2" : 1 } }

Cette approche est très légère, car vous stockez le moins de données possible, mais vous devrez toujours calculer la position de l'élément à mettre à jour, et vous devrez écrire du code supplémentaire pour désérialiser la matrice dans votre pilote.

2.Matrice de stockage de la manière suivante :

{
  _id: "1",
  matrix: [
  {xy: "0-0", v: 1},
  {xy: "1-0", v: 2},
  {xy: "2-0", v: 3},
  {xy: "0-1", v: 4},
  ...
  ]
}

Ensuite, pour incrémenter le troisième élément de la première ligne de la matrice, vous aurez besoin de la mise à jour suivante :

db.matrix.update({_id: 1, "matrix.xy": 2-0 }, { $inc : { "matrix.$.v" : 1 } }

Cette approche devrait être plus simple côté conducteur, mais vous devrez stocker plus d'informations dans une base de données.

Choisissez ce que vous aimez le plus.