У меня есть два поля 'компания' и 'url'. Я хочу сортировать его по количеству раз, когда происходит «компания», а затем отображается три «url», соответствующие этой конкретной компании. Данные хранятся следующим образом:Mongo запрос сортировать по разным подсчетам
{
"_id" : ObjectId("56c4f73664af6f7305f3670f"),
"title" : "Full Stack Software Developer",
"url" : "http://www.indeed.com/cmp/Upside-Commerce,-Inc./jobs/Full-Stack-Software-Developer-6e93e36ea5d0e57e?sjdu=QwrRXKrqZ3CNX5W-O9jEvRQls7y2xdBHzhqWkvhd5FFfs8wS9wesfMWXjNNFaUXen2pO-kyc_Qbr7-_3Gf40AvyEQT3jn6IRxIwvw9-aFy8",
"company" : "Upside Commerce, Inc."
}
следующий запрос подсчитывает количество отдельных компаний.
db.Books.aggregate({$group : { _id : '$company', count : {$sum : 1}}})
Ниже приводится выход:
{ "_id" : "Microsoft", "count" : 14 }
{ "_id" : "Tableau", "count" : 64 }
{ "_id" : "Amazon", "count" : 64 }
{ "_id" : "Dropbox", "count" : 64 }
{ "_id" : "Amazon Corporate LLC", "count" : 64 }
{ "_id" : "Electronic Arts", "count" : 64 }
{ "_id" : "CDK Global", "count" : 65 }
{ "_id" : "IDC Technologies", "count" : 64 }
{ "_id" : "Concur", "count" : 64 }
{ "_id" : "Microsoft", "count" : 14 }
{ "_id" : "Tableau", "count" : 64 }
{ "_id" : "Amazon", "count" : 64 }
{ "_id" : "Dropbox", "count" : 64 }
{ "_id" : "Amazon Corporate LLC", "count" : 64 }
{ "_id" : "Electronic Arts", "count" : 64 }
{ "_id" : "CDK Global", "count" : 65 }
{ "_id" : "IDC Technologies", "count" : 64 }
{ "_id" : "Concur", "count" : 64 }
Однако я хочу сортировать по кол-ву различных компаний (ограничить его топ-10 самых высоких встречающихся компаний), а затем отображать три адреса, соответствующие различным компании (если счет для отдельной компании по крайней мере три). Что-то вроде:
{for microsoft:
{"url" : "https://careers.microsoft.com/jobdetails.aspx?jid=216571&memid=1071484607&utm_source=Indeed"}
{"url" : "https://careers.microsoft.com/jobdetails.aspx?jid=216571&memid=1695844082&utm_source=Indeed" }
{ "url" : "https://careers.microsoft.com/jobdetails.aspx?jid=216571&memid=932148152&utm_source=Indeed"}}
То же самое касается и других компаний
Большое спасибо. Ценить это. Очень хорошо объяснено. – dsl1990