2013-07-01 4 views
0

Я чувствую, что это должно быть тривиально.Поле для чтения в запросе pymongo

У меня есть запись, как:

{'f1' : 1, 'f2' , 'aaaa'}

Когда я запросить, что я хочу быть возвращен:

{'f1' : '1', 'f2' , 'aaaa'}

Где я просто бросить ИНТ в виде строки. Я не считаю, что мне нужно использовать структуру агрегации для достижения этой цели.

Я предполагаю, что есть возможность передать функцию JS, но я не знаю этой магии.

Редактировать: Отвечая на мой собственный вопрос в некоторой степени. Чтобы сделать это с помощью структуры агрегации. Это было бы так просто.

db.datasets.aggregate({$match : {f1:{$ne:null}}},{ $project : {f1: {$toUpper:"$f1"}, f2 : 1 }})

+0

Это недопустимый хэш там у вас –

ответ

0

Ни MongoDB, ни PyMongo предоставляет функцию, как это. Вы можете попробовать добавить "SON manipulator", чтобы преобразовать исходящий документ (то есть документ, извлеченный из базы данных). Но, безусловно, самый простой способ:

for doc in db.datasets.find(): 
    doc['f1'] = str(doc['f1']) 
    do_something_with(doc) 
+1

Это не будет работать для меня, как я не могу (не хочу), чтобы обработать результат на стороне клиента. Я, вероятно, вернусь к методу агрегирования, который я разместил выше. – bearrito

Смежные вопросы