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

Znajdź wszystkie dokumenty, które współdzielą max(value) znalezione w kroku zbiorczym

Możesz to zrobić grupując na num_sold a następnie za pomocą $sort i $limit etapy potoku, aby uzyskać tylko dokumenty z maksymalną wartością:

db.t.aggregate([
    // Group by num_sold, assembling an array of docs with each distinct value.
    {$group: {
        _id: '$num_sold',
        docs: {$push: '$$ROOT'}
    }},
    // Sort the groups by _id descending to put the max num_sold group first.
    {$sort: {_id: -1}},
    // Return just the first (max num_sold) group of docs.
    {$limit: 1}
])

Wyjście:

{ 
    "_id" : 55.0, 
    "docs" : [
        {
            "_id" : ObjectId("5726a62879ce3350ff8d607e"), 
            "item" : "Orange", 
            "num_sold" : 55.0
        }, 
        {
            "_id" : ObjectId("5726a62879ce3350ff8d607f"), 
            "item" : "Peach", 
            "num_sold" : 55.0
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Błąd MongoDb z php 7 na xampp CodeIgniter

  2. Brak wyników wyszukiwania tekstowego MongoDB PHP

  3. MongoError:nieprawidłowe argumenty

  4. Wypełnij obiekt w tablicy

  5. pobierz rekord z co najmniej jednym powiązanym obiektem