![](/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.