db.sales.insert({"商品":"上衣","销售时间":"2015-12-01 11:00","售价":1.3});
db.sales.insert({"商品":"上衣","销售时间":"2015-12-01 12:00","售价":1.4});
db.sales.insert({"商品":"裤子","销售时间":"2015-12-01 11:30","售价":2.3});
db.sales.insert({"商品":"裤子","销售时间":"2015-12-01 12:30","售价":2.4});
db.sales.insert({"商品":"鞋子","销售时间":"2015-12-01 11:00","售价":3.3});
db.sales.insert({"商品":"鞋子","销售时间":"2015-12-01 12:00","售价":3.4});
db.sales.insert({"商品":"鞋子","销售时间":"2015-12-01 12:30","售价":3.5});
db.sales.aggregate([
{ $group: {
_id: "$商品",
"销售量":{$sum:1} ,
"最后销售时间": { $max: "$销售时间" }
} }
]);
问题:如何求最后销售时间对应的售价?
J'espère que cela vous aidera.
J'adore MongoDB ! Amusez-vous !
La direction est bonne, mais actuellement il n'existe pas de syntaxe de ce type pour obtenir le fonctionnement du "document correspondant au délai maximum de vente". En guise de nouveauté, nous avons des opérateurs comme
$first
/$last
. Si$first
s'avère être le document « dernière heure de vente », puis-je l'obtenir ? Pour atteindre cet objectif, vous pouvez d'abord trier les documents. La déclaration finale devrait donc ressembler à ceci :Afin d'être plus efficace,
$sort
peut être accéléré par indexation. Les index suivants sont requis :Théoriquement, les documents triés peuvent être utilisés par
$group
pour accélérer le processus de$group
Malheureusement, la version actuelle n'a pas encore apporté les optimisations correspondantes sur ce point. Pour une optimisation correspondante, veuillez prêter attention à l'état de mise à jour du Ticket SERVER-4507.