2016-02-26 3 views
0

Я использую каркас map_reduce pymongo для извлечения некоторых данных из mongodb. Это как мои данные выглядят так:pymongo bson.code pass in variable

{ 
    "_id" : ObjectId("566f570e3816dc2fe631db4f"), 
    "property_id" : 5594.0000000000000000, 
    "reservation_id" : "2544430.1", 
    "updated" : ISODate("2015-12-15T02:04:33.000Z"), 
    "offer_list" : { 
     "68799" : { 
      "pitched" : "no", 
      "accepted" : "no" 
     }, 
     "68801" : { 
      "pitched" : "no", 
      "accepted" : "no" 
     } 
    }, 
    "status" : "awarded", 
    "comments" : "", 
    "agent_id" : 1.0000000000000000, 
    "created" : ISODate("2015-12-14T23:55:52.000Z") 
} 

мне нужно будет получить все записи счетчиков для каждого агента после того, как какой-то даты, используя PyMongo.

Функция картографа будет выглядеть так:

mapper = Code("""function(){ 
     if(this.created>start_date){ 
      emit(this.agent_id, 1); 
     }) 

, в котором start_date будет переменная передается из питона кода.

Прочитав документ, я думаю, что область должна быть установлена, но я не мог найти документацию о том, как это сделать. Я ничего не знал о javascript. Может ли кто-нибудь помочь?

Заранее благодарен!

+0

Зачем вам это нужно? Map_reduce'? Можете ли вы показать ожидаемый результат? – styvane

+0

Ожидаемый результат будет {agent_id: 1, count: 12}, что указывает, что у агента есть 12 записей с момента запуска start_date –

ответ

0

Проблема была исправлена ​​с использованием ключевого слова query.

collection.map_reduce(mapper, reducer, "myresults", query={"created":{"$gte":start_date, "$lt":end_date}})