MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

requête mongoDB utilisant un agrégat pour interroger la date la plus récente d'un élément

Tout d'abord :-)

  1. utilisez $match comme premier pipeline en requête pour augmenter la vitesse de traitement (moins de données à traiter)

  2. dans $group vous pouvez utiliser $min - aucun tri nécessaire rapidité :-)

La requête ressemblera donc à ceci :

db.wab.aggregate([{
            $match : {
                vendor_name : {
                    $in : ["test1", "test2"]
                },
                category : 'Fruit'
            }
        }, {
            $group : {
                _id : {
                    vendor_name : "$vendor_name",
                    product_name : "$product_name"
                },
                business_date : {
                    $min : "$business_date"
                }
            }
        }
    ])