sql >> Databáze >  >> NoSQL >> MongoDB

Seřadit vnořené pole objektů

Uložil bych ho v pořadí, v jakém ho chcete vrátit. Nebo jej po vytažení roztřiďte na straně klienta.

Pokud ani jedno z toho není možné, můžete použít agregační rámec:

> 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. Operátor agregace MongoDB $sortByCount

  2. Způsobí nastavení slave-read-only no ne, způsobí, že slave potvrdí každé vyhledávání hash s hlavním?

  3. Foreman okamžitě končí

  4. Chyba:Nelze se připojit k Redis na redis:6379:Název nebo služba nejsou známy