这个问题的措词可能不正确,但这是我的问题。我有一个MySQL查询,该查询查找哪个用户从图书馆中签出了最多的书。SQL查询工作正常,但我是MongoDB世界的新成员。这是我的SQL查询:
SELECT UID, count(UID)
FROM checkout_data
GROUP BY UID
ORDER BY count(UID) desc
LIMIT 1;
我如何在Mongo中做到这一点?编辑:示例库
{
"Date_Checked_Out":" 2014-01-01 09:34:36.206",
"Day":"Wednesday",
"Borrower_Category":" Undergraduate Student",
"Item_Barcode":"00000000012345'",
"Title":" Bob's Day at the Beach",
"Material_Format":" BOOK",
"Loan_Policy applied to item":" 0.10Day 2Week Loan",
"Due_Date":" 2013-12-19 00:45:00.0",
"Due_Day":"Thursday",
"Number_times_renewed":" 0",
"Institution":"FREED HARDEMAN UNIV; LODEN-DANIEL LIBR",
"Home_Branch": 15243,
"Shelving_Location":" Stacks; 1st Floor",
"Call_Number":" BV640 .B37 1989",
"UID":" 15243ea5-421f-4cec-b091-394586adfe2b"
}
这是等效的聚合管道命令:
使用$group
运算符可以根据UID
字段对记录进行分组。Sort
然后limit
是第一组。
db.collection.aggregate([{
$group: {
"_id": "$UID",
"count": {
$sum: 1
}
}
},
{
$sort: {
"count": -1
}
},
{
$limit: 1
}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句