使用 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}]
谁能告诉我哪里错了?谢谢
请您参考如下方法:
没有错,MongoDB 本身不会返回刚刚插入的文档的 id,pymongo 会为您做这件事。 pymongo API 的异步实现(也在 Tornado IOLoop 上)称为 APyMongo ,它的行为应该符合您的预期。
有关此主题的更多信息,请参阅此 Google 群组主题:http://groups.google.com/group/python-tornado/browse_thread/thread/9f43f85916156848
