MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

时间:2024-03-13 10:44:57

1、环境:

Python:3.7.3 
Python IDE:pycharm
系统:win10

2、windows运行并配置mongoDB服务

(1)在安装好mongoDB之后,首先配置你的环境变量(略),然后进入你的安装位置文件夹可以看到

MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

在此目录下我们创建一个data文件夹(名称可以任意),然后打开cmd(用管理员身份运行)输入mongod --dbpath + 你的data路径,如Mongod --dbpath D:\mongoDB\data,这样我们便启动了MongoDB服务 

MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

然后我们就可以通过cmd输入mongo或使用Pycharm编写Python代码来操作数据库了。

(2)安装服务

  mongoDB与mysql等数据库不同,mysql在电脑上安装好了往后都能自启动服务,非常方便,直接连接就好。而mongoDB则需要手动创建,如果你希望能像mysql一样,不需要每启动服务就能直接连接mongoDB数据库,就手动创建服务。(当然如果你不嫌麻烦的话也可以不创建,对你使用mongoDB来说没有任何影响)。

①首先在你的存放数据的文件(我的是data)同级目录下创建一个log文件夹(由于我直接在安装文件里创建了data,所以data、bin都在同级目录下)

②在安装目录中创建一个文件mongod.cfg

内容如下

systemLog:

    destination: file

    path: D:\mongoDB\log\mongod.log

storage:

dbPath: D:\mongoDB\data

③使用管理员权限打开一个cmd,输入mongod --config "D:\MongoDB\mongod.cfg" --install执行。

④此后打开系统服务就可以找到mongo的服务了,找到后启动此项服务。

MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

此后,如果我们再需要连接mongoDB就可以直接连接了,而不需要再在cmd里通过输入“mongod --dbpath + 你的data路径”来启动。 

3、一个简单例子

通过几行python代码从mongoDB的test数据库中读取集合col(表col)中的数据(数据是我之前在菜鸟驿站学习mongoDB时通过cmd在test库中的col表插入的)

import pymongo
mongo_url = "127.0.0.1:27017"
client = pymongo.MongoClient(mongo_url)
DATABASE = "test"
db = client[DATABASE]

COLLECTION = "col"
db_coll = db[COLLECTION ]

queryArgs = {'by':'菜鸟教程'}
search_res = db_coll.find(queryArgs).sort('age',-1)
for record in search_res:
      print(f"_id = {record['_id']}, title = {record['title']}, url = {record['url']}")

运行结果:

MongoDB的安装配置以及通过Python来操作mongoDB向其中导入或读取数据

4、Mongodb解决不能连接到服务器的错误

(1)在我某次连接MongoDB的时候,出现了以下错误:

MongoDB shell version: v3.4.2

connecting to: test
Mon Mar  3 23:45:09.491 Error: couldn't connect to server  127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

导致这个原因有两个:

①你的电脑没有启动mongoDB服务,解决方法:

   打开cmd输入mongod --dbpath + 你的data路径

   或已配置服务的可直接打开计算机管理找到mongo直接启动服务即可。

②上次关闭Mongodb不当,数据文件还继续占用,正常退出因该是exit命令

解决方法:

删除掉D:\MongoDB\data中的mongod.lock文件,开启MongoDB服务