在命令行中,这可以:
$ mongo
> show dbs
mydatabase 1.0GB
然而,这不是:
$ python
>>> import pymongo
>>> connection = pymongo.MongoClient()
>>> connection.mydatabase.find()
我在这里阅读了文档:
http://api.mongodb.org/python/current/tutorial.html
但不明白如何......
为什么我无法访问我的数据库?
答案 0 :(得分:9)
Connect to an existing database
import pymongo
from pymongo import MongoClient
connection = MongoClient()
db = connection.mydatabase
import pymongo
from pymongo import MongoClient
connection = MongoClient()
connection.database_names()
答案 1 :(得分: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 Driver API Documentation内的绑定非常完整。
答案 2 :(得分:1)
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程序员,但这应该让你开始。
答案 3 :(得分:0)
该问题暗示用户具有 local MongoDB。但是我发现这个问题试图连接到远程 MongoDB。我认为tutorial is worth mentioning(此处没有其他答案提到了如何指定主机和端口)
以上代码将连接到默认主机和端口。我们还可以显式指定主机和端口,如下所示:
client = MongoClient('localhost', 27017)
或使用MongoDB URI格式:
client = MongoClient('mongodb://localhost:27017/')
答案 4 :(得分:0)
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()