Asyncmongo不返回_id

时间:2011-10-21 13:46:30

标签: python mongodb tornado

使用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一起使用。 但是当我使用AsyncMongo时,我无法得到_id。

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 :(得分:0)

没有错,MongoDB本身不返回刚插入文件的id, pymongo 为你做。有一个名为APyMongo的pymongo API(也在Tornado IOLoop上)的异步实现,它应该按照你的预期运行。

有关此主题的更多信息可以在此google群组主题中找到:http://groups.google.com/group/python-tornado/browse_thread/thread/9f43f85916156848