poo*_*kie 1 python azure python-3.x azure-cosmosdb
我在我的项目中使用 CosmosDB (Azure documentDB),用 Python 3 编写。
我已经找了一段时间了,但我不知道如何查询我的表。我已经看到了一些示例代码,但我没有看到如何查询的示例...我所能做的就是获取所有文档(当我的数据库 > 80GB 时并不理想)。
GitHub 存储库显示了一组非常小的数据库和集合操作:https://github.com/Azure/azure-documentdb-python/blob/master/samples/CollectionManagement/Program.py
下面的 SO帖子展示了如何读取所有文档...但没有展示如何执行诸如“WHERE = X;”之类的查询
如果有人能指出我正确的方向,并且可能提供一个展示如何运行查询的示例,我将非常感激。
根据我的理解,我认为您想知道如何使用 Python 执行类似 SQL 的查询来检索 Azure CosmosDB 上的 DocumentDB API 上的文档,请参阅此处的以下代码。
使用 SQL 执行查询
Run Code Online (Sandbox Code Playgroud)# Query them in SQL query = { 'query': 'SELECT * FROM server s' } options = {} options['enableCrossPartitionQuery'] = True options['maxItemCount'] = 2 result_iterable = client.QueryDocuments(collection['_self'], query, options) results = list(result_iterable); print(results)
上面的代码就是使用的方法QueryDocuments。
如有任何疑问,请随时告诉我。
更新:与您链接的其他 SO 线程的示例代码结合起来,如下所示。
from pydocumentdb import document_client
uri = 'https://ronyazrak.documents.azure.com:443/'
key = '<your-primary-key>'
client = document_client.DocumentClient(uri, {'masterKey': key})
db_id = 'test1'
db_query = "select * from r where r.id = '{0}'".format(db_id)
db = list(client.QueryDatabases(db_query))[0]
db_link = db['_self']
coll_id = 'test1'
coll_query = "select * from r where r.id = '{0}'".format(coll_id)
coll = list(client.QueryCollections(db_link, coll_query))[0]
coll_link = coll['_self']
query = { 'query': 'SELECT * FROM server s' }
docs = client.QueryDocuments(coll_link, query)
print list(docs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9054 次 |
| 最近记录: |