MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

query mongoDB utilizzando aggregate per interrogare la data più recente di un elemento

Per prima cosa :-)

  1. usa $match come prima pipeline in query per aumentare la velocità di elaborazione (meno dati da elaborare)

  2. in $group puoi usare $min - nessun ordinamento necessario velocità :-)

Quindi la query sarà simile a questa:

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