MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Сортиране на вложен масив от обекти

Бих го съхранил в реда, в който искате да го извадите обратно. Или го сортирайте, след като го извадите, от страна на клиента.

Ако нито едно от тях не е възможно, можете да използвате рамката за агрегиране:

> 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"}}}
]);

произвежда:

{
  "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. Как да инсталирам mongoDB на Windows?

  2. MongoDB $arrayElemAt

  3. Свържете NodeJS към MongoDB Droplet

  4. MongoDB $rtrim

  5. Не мога да намеря модул '../build/Release/bson'] код:'MODULE_NOT_FOUND' } js-bson:Неуспешно зареждане на разширението на c++ bson, използвайки чиста JS версия