2014-12-05 78 views
0

这个问题可能措辞不当,但这是我的问题。我有一个MySQL查询,查找哪个用户已经从库中检出了大部分书籍。 SQL查询工作得很好,但我是品牌spankin'MongoDB世界的新手。这是我的SQL查询:你如何找到MongoDB字典中发生最多的字段?

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":"00000000'", 
"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" 
} 
+0

请问您可以在集合中发布样本文档吗? – BatScream 2014-12-05 01:30:19

+0

当然!感谢BatScream。 – 2014-12-05 01:51:09

回答

1

这相当于聚合管道命令:

使用$group操作员组基础上,UID场的记录。 Sort然后limit第一组。

db.collection.aggregate([ 
{$group:{"_id":"$UID","count":{$sum:1}}}, 
{$sort:{"count":-1}}, 
{$limit:1} 
]) 
+0

非常感谢!它运作良好。 – 2014-12-05 01:58:49

+0

@MarkRoberts欢迎。请随时发布您有任何疑问/问题。 – BatScream 2014-12-05 02:45:16