如何使用python在本地连接到Mongo数据库

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22139173/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 00:21:02  来源:igfitidea点击:

How to connect to Mongo database locally using python

pythonmongodbipythonpymongo

提问by pramod24

I am using ipython 2.7. I am creating database name enron in mongodb. I have tried to connect to this database locally but the following error occurred - how do I fix it?

我正在使用 ipython 2.7。我正在 mongodb 中创建数据库名称 enron。我曾尝试在本地连接到此数据库,但出现以下错误 - 我该如何解决?

this my code:

这是我的代码:

import json
import pymongo  # pip install pymongo
from bson import json_util 
from pymongo import MongoClient# Comes with pymongo
conn = pymongo.Connection('mongodb://user:[email protected]:33499/enron')
client = MongoClient()

error:

错误:

ConnectionFailure: could not connect to localhost:27017: [Errno 10061] No connection     could be made because the target machine actively refused it

采纳答案by guy_fawkes

Refer this PyMongo Connectionto connect and Connection is deprecated

请参阅此PyMongo 连接以进行连接并且不推荐使用连接

回答by jatin

Run this command from command line in mongo installtion directory.

从 mongo 安装目录中的命令行运行此命令。

...>mongo>...>bin>

...>mongo>...>bin>

mongod --dbpath data/db (here data/db is a path where your database)

mongod --dbpath data/db (这里 data/db 是你的数据库所在的路径)

回答by Amit

Below are commands to create connection and query

下面是创建连接和查询的命令

from pymongo import MongoClient
client = MongoClient('hostname', 27017)
db = client.database_name
collection = db.collection_name
collection.find_one({"name":"name1"})

回答by Raja Jawahar

from pymongo import MongoClient
from bson import json_util


MONGODB_HOST = 'localhost'
MONGODB_PORT = 27017
DB_NAME = 'Your DB name'
COLLECTION_NAME = 'collectionname'

@app.route("/")
def getDatas():
    connection = MongoClient(MONGODB_HOST, MONGODB_PORT)
    collection = connection[DB_NAME][COLLECTION_NAME]
    projects = collection.find()
    json_projects = []
    for project in projects:
        json_projects.append(project)
    json_projects = json.dumps(json_projects, default=json_util.default)
    connection.close()
    return json_projects

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=5000,debug=True)

回答by Suhas_Pote

#!pip install pymysql

import pymysql

pymysql.install_as_MySQLdb()

import MySQLdb

#!pip install pymongo
import pymongo
import json
from pymongo import MongoClient


import pandas as pd
from pymongo import MongoClient
# if __name__ == '__main__':
#     client = MongoClient("localhost", 27017, maxPoolSize=50)
client = MongoClient("localhost", 27017, maxPoolSize=50)
db = client.mydb
collection = db.angel
data = pd.DataFrame(list(collection.find()))


data

'''
Address City    Name    State   ZIP _id
0   123 Main St Whereverville   Jane Doe    CA  90210   5af03bfa8ca570abf4a2f76c
1   555 Broadway Ave    New York    John Doe    NY  10010   5af03bfa8ca570abf4a2f76d
'''

回答by DRAD

A derivation of @amit above, I use this to quickly test a mongodb connection:

上面@amit 的一个派生,我用它来快速测试一个 mongodb 连接:

# pip install pymongo
from pymongo import MongoClient
client = MongoClient('mongodb://user:password@host:port/database')

for db in client.list_databases():
    print(db)