繁体   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