Python 使用asyncmongo从MongoDB返回不同的密钥
我将asyncmongo与Tornado+gen.engine一起使用,只是想知道与Python 使用asyncmongo从MongoDB返回不同的密钥,python,mongodb,tornado,pymongo,Python,Mongodb,Tornado,Pymongo,我将asyncmongo与Tornado+gen.engine一起使用,只是想知道与db.collection.distinct(“mykey”)等效的语法是什么 我猜是这样的 result, error = yield gen.Task(settings.DB.my_data.find, {}, distinct=[("key","mykey")]) 但那是行不通的。无论出于什么原因,我在网上找不到任何这样的例子 谢谢。结果我将切换到Motor,它支持distinct()作为查询,加上has
db.collection.distinct(“mykey”)
等效的语法是什么
我猜是这样的
result, error = yield gen.Task(settings.DB.my_data.find, {}, distinct=[("key","mykey")])
但那是行不通的。无论出于什么原因,我在网上找不到任何这样的例子
谢谢。结果我将切换到Motor,它支持distinct()作为查询,加上has,这对于在启动回调之前等待多个查询完成非常方便。结果我将切换到Motor,它支持distinct()作为查询,plus具有一个非常方便的功能,可以在触发回调之前等待多个查询完成。问题是,“独特”不是查询的选项,它是一个单独的命令: 因此,请使用AsyncMongo的command()方法: 您需要的数据在结果['values']中 AsyncMongo的测试套件中有更多使用AsyncMongo命令的示例: 以及有关MongoDB命令的一般信息(示例使用PHP编写,但即使对于像我们这样的Python程序员也很容易理解): 问题是,“distinct”不是查询的选项,它是一个单独的命令: 因此,请使用AsyncMongo的command()方法: 您需要的数据在结果['values']中 AsyncMongo的测试套件中有更多使用AsyncMongo命令的示例: 以及有关MongoDB命令的一般信息(示例使用PHP编写,但即使对于像我们这样的Python程序员也很容易理解):
它会给你错误或返回错误的结果?错误…我只是临时修改了我给出的示例的语法,但我开始认为它还没有实现?我见过有人使用带有reduce函数的“group”,但这似乎有些过分。它会给你带来错误或返回错误的结果?错误…我只是在临时修改我给出的示例的语法,但我开始认为它还没有实现?我见过人们使用带有reduce函数的“group”,但这似乎有些过分。
>>> from tornado.ioloop import IOLoop
>>> import asyncmongo
>>> db = asyncmongo.Client(pool_id='mydb', host='127.0.0.1', port=27017, maxcached=10, maxconnections=50, dbname='test')
>>> def callback(result, error):
... print result
... IOLoop.instance().stop()
...
>>> db.command('distinct', 'my_data', key='my_key', callback=callback)
>>> IOLoop.instance().start()
{u'stats': {u'cursor': u'BasicCursor', u'timems': 0, u'nscannedObjects': 5, u'nscanned': 5, u'n': 5}, u'values': [1.0, 2.0], u'ok': 1.0}