Posted by & filed under python.

Хочу обратить внимание на различия в работе с mongodb напрямую и через pymongo.

Работа с конcолью с mongodb:

db.banners_shows.mapReduce(showMap,showReduce,{out:{reduce:'joined'},'query':{'options':{'$exists':'true'}}});

где banners_shows — наша коллекция,
showMap — map функция
showReduce — reduce функция
joined — коллекция куда выводится результат
options — ключ который может существовать в полях нашей коллекции

Сначала по аналогии делал так и для pymongo

show_result=banner_shows.map_reduce(map_func,reduce_func,out=bson.son.SON({out:{reduce:'joined'},{'options': {'$exists': 'true'}}}

и получал такую ошибку

… collection names must not contain ‘$’ …

Правильный вариант

show_result=banner_shows.map_reduce(map_func,reduce_func,out='joined',query=bson.son.SON({'options': {'$exists': 'true'}} ))
Опубликовать в Facebook
Опубликовать в Google Plus

Leave a Reply

You must be logged in to post a comment.