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

Jak w MongoDB mogę sortować dokumenty na podstawie właściwości w osadzonym obiekcie?

Ponieważ nie potrzebujesz release elementy poza tymi z regionu "GB", możesz to zrobić za pomocą aggregate tak:

db.products.aggregate(
    // Filter the docs to just those containing the 'GB' region
    { $match: {'release.region': 'GB'}},
    // Duplicate the docs, one per release element
    { $unwind: '$release'},
    // Filter the resulting docs to just include the ones from the 'GB' region
    { $match: {'release.region': 'GB'}},
    // Sort by release date
    { $sort: {'release.date': 1}})

wyjście:

{
  "result": [
    {
      "_id": "baz",
      "release": {
        "region": "GB",
        "date": ISODate("20110501T00:00:00Z")
      }
    },
    {
      "_id": "foo",
      "release": {
        "region": "GB",
        "date": ISODate("20120301T00:00:00Z")
      }
    },
    {
      "_id": "bar",
      "release": {
        "region": "GB",
        "date": ISODate("20120501T00:00:00Z")
      }
    }
  ],
  "ok": 1
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:jak uzyskać db.stats() z API

  2. MongoDB znajdź gdzie klucz równa się łańcuchowi z tablicy

  3. Mongoose:Nie można pobrać dokumentów plików z kolekcji .chunk bez pola danych

  4. Pobieranie danych z mongodb przez nodejs i ekspresowe na stronę html

  5. MongoDB $asin