sql >> Database teknologi >  >> NoSQL >> MongoDB

Forøg matrixstruktur i MongoDb

Lad os overveje, at vi har:

1 2 3
4 5 6
7 8 9
 

Du kan gemme matrix som indlejret array i mongodb på forskellige måder:

1. Repræsenter matrix som en-dimensionel matrix og gem sådan:

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

For derefter at øge det tredje element i matrixen skal du bruge følgende opdatering:

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

Denne tilgang er meget let, fordi du gemmer så minimalt med data som muligt, men du skal altid beregne elementets position for at opdatere, og du skal skrive yderligere kode for at deserialisere matrix i din driver.

2. Gem matrix på følgende måde:

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

For derefter at øge tredje element i første række i matrix skal du bruge følgende opdatering:

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

Denne tilgang burde være enklere fra førersiden, men du bliver nødt til at gemme flere oplysninger i en database.

Vælg det, du bedst kan lide.



  1. Hadoop MapReduce jobudførelse flowdiagram

  2. Kan bare ikke få Passport.js til at virke

  3. Datamigrering fra Oracle til Mongo DB

  4. Opdater flere rækker betinget