Asyncmongo не вернуть _id - PullRequest
       7

Asyncmongo не вернуть _id

2 голосов
/ 21 октября 2011

Используйте PyMongo:

import pymongo
conn=pymongo.Connection(host='127.0.0.1',port=27017)
db=conn.cms
db.comments.save({'content':'test', 'user':'admin'})

Затем верните:

ObjectId('4ea175b96e955237aa000000')

Все в порядке с PyMongo. Но я не могу получить _id в ответ, когда использую AsyncMongo.

class PoCommentsHandler(BaseClass):
    @tornado.web.asynchronous
    def post(self):
        self.mongo.comments.save({'content':'test', 'user':'admin'}, callback=self._callback)
    def _callback(self, response, error):
        if error: raise tornado.web.HTTPError(500)
        logging.info(response)
        self.finish(str(response))

Затем верните:

[I 111021 21:25:02 cms:104] [{u'connectionId': 41, u'ok': 1.0, u'err': None, u'n': 0}]

Кто может сказать мне, что не так?Спасибо

1 Ответ

0 голосов
/ 06 ноября 2011

В этом нет ничего плохого, MongoDB сама не возвращает идентификатор только что вставленного документа, pymongo сделает это за вас. Существует асинхронная реализация API-интерфейса pymongo (также в Tornado IOLoop) под названием APyMongo , которая должна вести себя так, как вы ожидали.

Подробнее об этой теме можно найти в этой ветке групп Google: http://groups.google.com/group/python-tornado/browse_thread/thread/9f43f85916156848

...