sql >> Base de Datos >  >> NoSQL >> MongoDB

Estructura de matriz de incremento en MongoDb

Consideremos que tenemos:

1 2 3
4 5 6
7 8 9

Puede almacenar matriz como matriz incrustada en mongodb de diferentes maneras:

1.Represente la matriz como una matriz unidimensional y guárdela de esta manera:

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

Luego, para incrementar el tercer elemento de la matriz, necesitará la siguiente actualización:

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

Este enfoque es muy liviano, porque almacena la menor cantidad de datos posible, pero siempre necesitará calcular la posición del elemento para actualizar, y necesitará escribir código adicional para deserializar la matriz en su controlador.

2.Guarde la matriz de la siguiente manera:

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

Luego, para incrementar el tercer elemento de la primera fila en la matriz, necesitará la siguiente actualización:

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

Este enfoque debería ser más simple desde el lado del controlador, pero deberá almacenar más información en una base de datos.

Elige lo que más te guste.