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

Sortuj zagnieżdżoną tablicę obiektów

Przechowałbym go w kolejności, w jakiej chcesz go wycofać. Lub posortuj go po wyciągnięciu, po stronie klienta.

Jeśli żadna z tych opcji nie jest możliwa, możesz użyć struktury agregacji:

> db.test.insert({answers: [
...                 {name: 'paul', state: 'RU'},
...                 {name: 'steve', state: 'US'}, 
...                 {name: 'mike', state: 'DE'}]});
> db.test.insert({answers: [
...                 {name: 'paul', state: 'RU'},
...                 {name: 'steve', state: 'US'}, 
...                 {name: 'xavier', state: 'TX'}]});

db.test.aggregate([
  {$unwind: "$answers"}, 
  {$sort: {"answers.name":1}}, 
  {$group: {_id:"$_id", answers: {$push:"$answers"}}}
]);

produkuje:

{
  "result" : [
  {
    "_id" : ObjectId("5053b2477d820880c3469364"),
    "answers" : [
      {
        "name" : "paul",
        "state" : "RU"
      },
      {
        "name" : "steve",
        "state" : "US"
      },
      {
        "name" : "xavier",
        "state" : "TX"
      }
    ]
  },
  {
    "_id" : ObjectId("5053af9f7d820880c3469363"),
    "answers" : [
      {
        "name" : "mike",
        "state" : "DE"
      },
      {
        "name" : "paul",
        "state" : "RU"
      },
      {
        "name" : "steve",
        "state" : "US"
      }
    ]
  }
],
  "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Automatycznie usuwaj obiekty odniesienia po usunięciu w MongoDB

  2. Ostrzeżenie o wycofaniu:Nasłuchiwanie zdarzeń w klasie Db zostało wycofane i zostanie usunięte w następnej wersji głównej

  3. MongoDb wyłącza się z kodem 100

  4. Jak osiągnąć wycofanie w transakcjach w mongo?

  5. Gdzie jest baza danych meteor MongoDB?