如何在mongo中编写以下查询?
select max(priority) as max, min(priority) as min from queue group by user
如果您使用PHP提供解决方案,我将非常感激。
谢谢
答案 0 :(得分:2)
这样的查询是使用聚合framwework和.aggregate()
方法执行的。他们使用$group
管道阶段与$min
和$max
运算符。
db.collection.aggregate([
{ "$group": {
"_id": "$user",
"max": { "$max": "$priority" },
"min": { "$min": "$priority" }
}}
])
或更多PHP语法:
$collection->aggregate(array(
array(
'$group' => array (
'_id' => '$user',
'max' => array( '$max' => '$priority' ),
'min' => array( '$min' => '$priority' )
)
)
));
另请参阅文档中的SQL to Aggregation Mapping Chart