MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Struktura macierzy przyrostu w MongoDb

Rozważmy, że mamy:

1 2 3
4 5 6
7 8 9

Możesz przechowywać macierz jako tablicę osadzoną w mongodb na różne sposoby:

1. Reprezentuj macierz jako jednowymiarową tablicę i przechowuj w następujący sposób:

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

Następnie, aby zwiększyć trzeci element macierzy, będziesz potrzebować następującej aktualizacji:

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

To podejście jest bardzo lekkie, ponieważ przechowujesz jak najmniej danych, ale zawsze będziesz musiał obliczyć pozycję elementu do aktualizacji i będziesz musiał napisać dodatkowy kod, aby zdeserializować macierz w sterowniku.

2. Przechowuj macierz w następujący sposób:

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

Następnie, aby zwiększyć trzeci element pierwszego rzędu w macierzy, będziesz potrzebować następującej aktualizacji:

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

To podejście powinno być prostsze od strony kierowcy, ale będziesz musiał przechowywać więcej informacji w bazie danych.

Wybierz to, co lubisz bardziej.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb Query Aby wybrać rekordy posiadające podany klucz

  2. Sterownik php MongoDB powodujący awarię Apache w XAMPP OS X

  3. 9 funkcji ClusterControl, których nie znajdziesz w innych narzędziach do zarządzania bazami danych

  4. Złącze Spark Mongo, MongoShardedPartitioner nie działa

  5. Mongodb - zduplikowane pola w $set i $setOnInsert