Хочу обратить внимание на различия в работе с 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'}} ))
Свежие комментарии