如何使用pymongo连接到现有文档集合/数据库?

16 投票
5 回答
29789 浏览
提问于 2025-04-17 13:22

在命令行中,这个是可以正常工作的:

$ 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连接中有哪些数据库。

为什么我无法访问我的数据库呢?

5 个回答

2

在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驱动程序的API文档中,相关的接口还是比较齐全的。

6

这个问题假设用户有一个本地的MongoDB。不过我发现这个问题是关于如何连接到一个远程的MongoDB。我觉得这个教程值得一提(这里没有其他答案提到我怎么指定主机和端口)

上面的代码会连接到默认的主机和端口。我们也可以明确指定主机和端口,方法如下:

client = MongoClient('localhost', 27017)

或者使用MongoDB的URI格式:

client = MongoClient('mongodb://localhost:27017/')

18

连接到一个已经存在的数据库

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()

撰写回答