gpt4 book ai didi

python - 使用 asyncmongo 从 MongoDB 返回不同的键

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:53 25 4
gpt4 key购买 nike

我将 asyncmongo 与 Tornado + gen.engine 一起使用,只是想知道与 db.collection.distinct("mykey") 等效的语法是什么?

我猜是这样的

result, error = yield gen.Task(settings.DB.my_data.find, {}, distinct=[("key","mykey")])

但这行不通。无论出于何种原因,我都无法在网上找到任何此类示例。

谢谢。

最佳答案

问题是,“distinct”不是一个查询选项,它是一个单独的命令:

http://www.mongodb.org/display/DOCS/Aggregation#Aggregation-Distinct

所以使用AsyncMongo的command()方法:

>>> 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}

您需要的数据在result['values']中。

更多使用 AsyncMongo 命令的例子在它的测试套件中:

https://github.com/bitly/asyncmongo/blob/master/test/test_command.py

以及有关 MongoDB 命令的一般信息(示例是用 PHP 编写的,但即使对于像我们这样的 Python 程序员来说也很容易理解):

http://www.kchodorow.com/blog/2011/01/25/why-command-helpers-suck/

关于python - 使用 asyncmongo 从 MongoDB 返回不同的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12570862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com