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

Намерете всички документи, които споделят максимална (стойност), намерена в обобщена стъпка

Можете да направите това, като групирате на num_sold и след това с помощта на $sort и $limit етапи на тръбопровод, за да получите само документите с максимална стойност:

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

Изход:

{ 
    "_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. Как да изпълня команда за търсене в пълен текст в MongoDB с Java драйвер?

  2. Не може да импортира json в MongoDB

  3. MongoDB срещу Касандра

  4. Има ли начин да получите парче като резултат от Find()?

  5. Mongodb съвпада с акцентирани знаци като основен символ