MongoDB—安装与配置

在学习爬虫时,遇到需要保存数据的情况,虽然可以直接保存到本地,但是遇到大量数据,就比较麻烦,所以我学习了MongoDB的使用,MongoDB是一种非关系型数据库,数据以键值存贮,类似于JSON格式。

1.下载相关链接

下载对应版本的安装包进行傻瓜式安装

注意:安装目录不得有空格 

2.配置

将目录放入环境变量

在安装目录下的data目录中创建db文件夹

3.使用 

在cmd中输入 mongod  --dbpath db文件位置

然后新开一个cmd运行 mongo

即可运行

配置自动

在mongoDB目录下新建config文件 

进行设定

##数据文件

dbpath=D:\mongonDB\data

##日志文件

logpath=D:\mongonDB\log\mongoDB.log

##错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件

logappend=true

#启用日志文件,默认启用

journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false

quiet=true

#端口号 默认为27017

port=27017

在cmd下安装(提前将mongo放入path) 

 

安装成功 

可以在浏览器中输入http://localhost:27017 来查看是否成功

 

可以参考https://www.cnblogs.com/liuzhiying/p/5915741.html

使用

from pymongo import MongoClient
import csv

settings = {
    "ip":'127.0.0.1',   #ip
    "port":27017,           #端口
    "db_name" : "mydb",    #数据库名字,没有则自动创建
    "set_name" : "test_set"   #集合名字,没有则自动创建
}
class MyMongoDB(object):
    def __init__(self):
        try:
            self.conn = MongoClient(settings["ip"], settings["port"])
        except Exception as e:
            print(e)
        self.db = self.conn[settings["db_name"]]
        self.my_set = self.db[settings["set_name"]]
    #插入
    def insert(self,dic):
        self.my_set.insert(dic)
        print("插入成功")
    #更新
    def update(self,dic,newdic):
        self.my_set.update(dic,newdic)
        print("更新成功")
    #删除
    def delete(self,dic):
        self.my_set.remove(dic)
        print("删除成功")
    #查找
    def dbFind(self,dic):
        data = self.my_set.find(dic)
        for result in data:
            print(result)
        print("查找成功")
    #查找全部
    def findAll(self):
        # 查询全部
        for i in self.my_set.find():
            print(i)

if __name__ == "__main__":
    dic = {"name": "tom", "age": 18,"gender":"male"}
    dic1 = {"name": "sam", "age": 18,"gender":"male"}
    mongo = MyMongoDB()

    mongo.insert(dic)
    mongo.insert(dic1)
    mongo.findAll()

    mongo.update({"name": "tom"}, {"$set": {"age": "25"}})
    mongo.dbFind({"gender": "male"})
    
#    mongo.delete({"gender":"male"})
#    mongo.delete({"name": "tom"})
    mongo.findAll()
    


    # 将数据写入到CSV文件中
    with open(f"test.csv", "w", newline='') as csvfileWriter:
        writer = csv.writer(csvfileWriter)
        # 先写列名
        # 写第一行,字段名
        fieldList = [
            "_id",
            "name",
            "age",
            "gender",
        ]
        writer.writerow(fieldList)
    
        allRecordRes = mongo.my_set.find()
        # 写入多行数据
        for record in allRecordRes:
            print(f"record = {record}")
            recordValueLst = []
            for field in fieldList:
                if field not in record:
                    recordValueLst.append("None")
                else:
                    recordValueLst.append(record[field])
            try:
                writer.writerow(recordValueLst)
            except Exception as e:
                print(f"write csv exception. e = {e}")

猜你喜欢

转载自blog.csdn.net/yt627306293/article/details/83627042
今日推荐