MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Urutkan array objek bersarang

Saya akan menyimpannya sesuai urutan yang Anda inginkan. Atau urutkan setelah Anda menariknya keluar, di sisi klien.

Jika keduanya tidak memungkinkan, Anda dapat menggunakan kerangka kerja agregasi:

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

menghasilkan:

{
  "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 PILIH JUMLAH KELOMPOK OLEH

  2. Data pegas MongoDb:MappingMongoConverter menghapus _class

  3. Meteor:perbedaan antara nama untuk koleksi, variabel, publikasi, dan langganan?

  4. Mongo menemukan duplikat untuk entri untuk dua atau lebih bidang

  5. Berlangganan Koleksi Meteor.Users