簡體   English   中英

如何使用 pymongo 連接到現有的文檔集合/數據庫?

[英]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

但不明白如何...

  1. 連接到現有數據庫(使用 pymongo)
  2. 查詢 mongodb 連接中存在哪些數據庫。

為什么我不能訪問我的數據庫?

連接到現有數據庫

import pymongo
from pymongo import MongoClient
connection = MongoClient()
db = connection.mydatabase

列出現有數據庫

import pymongo
from pymongo import MongoClient
connection = MongoClient()
# connection.database_names() # depreciated
connection.list_database_names()

show dbsfind()是完全不同的命令,因此您無法比較兩者。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM