![](/img/trans.png)
[英]How do I use pymongo from an Azure function to connect to Cosmos DB
[英]How do I use pymongo to connect to an existing document collection/db?
在命令行上,这有效:
$ mongo
> show dbs
mydatabase 1.0GB
但是,这不会:
$ python
>>> import pymongo
>>> connection = pymongo.MongoClient()
>>> connection.mydatabase.find()
我在这里通读了文档:
http://api.mongodb.org/python/current/tutorial.html
但不明白如何...
为什么我不能访问我的数据库?
show dbs
和find()
是完全不同的命令,因此您无法比较两者。
connection.mydatabase.find()
实际上什么都不做,因为您无法在数据库级别find()
文档。 您可能正在寻找:
cursor = connection.mydatabase.mycol.find()
我不是 Python 程序员,但类似的东西和foreach
cursor
var 来获取您的数据。
作为附加说明,您需要将mycol
替换为包含您的文档的集合名称。
至于查询数据库列表,您可以执行以下操作:
databases = connection.mydatabase.command({'listDatabases': 1});
如下所示: http : //docs.mongodb.org/manual/reference/command/listDatabases/#listDatabases
然而,我又不是 Python 程序员,但这应该能让你开始。
在 python 命令行上:
import pymongo
from pymongo import MongoClient
connection = MongoClient() ## connects by default to db at localhost:27017
connection.database_names() ## python binding equivalent to show dbs.
尽管似乎没有大量示例,但Python Driver API Documentation中的绑定似乎非常完整。
这个问题暗示用户有一个本地MongoDB。 但是我发现这个问题试图连接到远程MongoDB。 我认为教程值得一提(这里没有其他答案提到我如何指定主机和端口)
上面的代码将连接到默认的主机和端口。 我们还可以明确指定主机和端口,如下所示:
client = MongoClient('localhost', 27017)
或者使用 MongoDB URI 格式:
client = MongoClient('mongodb://localhost:27017/')
database_names() 已弃用。 可以使用 list_database_names() 代替。
mongo_db_url 将类似于“mongodb://localhost:27017/”。 27017 是默认端口号,请适当更换。
from pymongo import MongoClient
client = MongoClient(<mongo_db_url>)
#or client = MongoClient('localhost', 27017)
client.list_database_names()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.