Вид структуры скопления MongoDB длиной множества

Учитывая следующий набор данных:

{ "_id" : ObjectId("510458b188ce1d16e616129b"), "codes" : [ "oxtbyr", "xstute" ], "name" : "Ciao Mambo", "permalink" : "ciaomambo", "visits" : 1 }
{ "_id" : ObjectId("510458b188ce1d16e6161296"), "codes" : [ "zpngwh", "odszfy", "vbvlgr" ], "name" : "Anthony's at Spokane Falls", "permalink" : "anthonysatspokanefalls", "visits" : 0 }

Как я могу преобразовать этот python/pymongo вид во что-то, что будет работать со структурой скопления MongoDB? Я сортирую результаты на основе количества кодов в коды множество.

z = [(x['name'], len(x['codes'])) for x in restaurants]
sorted_by_second = sorted(z, key=lambda tup: tup[1], reverse=True)
for x in sorted_by_second:
    print x[0], x[1]

Это работы у питона, я просто хочу знать, как достигнуть той же самой цели на конце вопроса MongoDB вещей.

2
nl ja de

1 ответы

> db.z.aggregate({ $unwind:'$codes'}, 
                 { $group : {_id:'$_id', count:{$sum:1}}}, 
                 { $sort :{ count: 1}})
2
добавлено
это могло бы стать ближе: db.z.aggregate ({$unwind:' $codes'}, {$group: {_id: {name:' $name' permalink:' $permalink'}, count: {$sum:1} }}, {$sort: {count:-1}}) Работа? You' ll должны проверить, но возможности - ваш сервер MongoDB, IO-bound, а не направляющийся центральным процессором, настолько тратящий некоторый центральный процессор, делающий скопление там, вместо того, чтобы заполнить провод документами для обработки в Пайтоне, вероятно, победа.
добавлено автор A. Jesse Jiryu Davis, источник
Это, по крайней мере, дает мне начало. I' d нравится показывать полные результаты, но по крайней мере I' m в правильном направлении. Какие-либо подсказки об исполнении этого против прикладной стороны?
добавлено автор Dan Gayle, источник
Проверенный, работает отлично. Спасибо!
добавлено автор Dan Gayle, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078