MongoDB
MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
一、环境配置
(一)下载地址
- 下载地址:https://www.mongodb.com/try/download/community-kubernetes-operator2
- 这里为大家下载好了,网盘自取:
- 链接: https://pan.baidu.com/s/1xNGBcvWZTpILJZR0IzbuXg
- 提取码:7v2x
(二)安装步骤
- 按照提示点击下一步即可,需要注意的是记住保存的路径。
- 建议:在自定义文件路径时,新建MongoDB文件夹,将文件安装在文件夹内。
如图:
1、点击Custom,自定义安装路径。
2、安装完成后,打开文件路径,点击bin目录,复制文件路径。
3、计算机--右击--属性--高级系统设置--环境变量--系统变量--path--新建,将bin目录复制进去,点击确定。
4、再次找到文件路径,进入data文件夹内,创建两个新的文件夹db和log。
5、点击完成后打开cmd窗口输入以下指令:
- mongod -dbpath "E:\MongoDB\data\db" -logpath "E:\MongoDB\data\log\mongo.log"
- 注意:我这里是在E盘,可以根据自己保存的位置进行修改。
- 输入之后,不要关闭该cmd窗口,重新打开一个cmd窗口,输入mongo来启动MongoDB shell 端。
6、查看新创建的文件夹db、log内是否有新文件产生,有新文件则表示环境配置成功。
- 配置成功后,将两个cmd窗口关闭即可。
二、数据库的操作
- 打开cmd窗口,输入mongo,即显示mogondb配置信息,同时进入mongodb输入库。
- 输入show dbs,即显示初始化的三个数据库。
(一)MongoDB基本命令
CMD命令 | 注释 |
mongod --install --dbpath 数据目录 --logpath 日志目录\日志名称.log | 创建 MongoDB服务 |
mongodb | 处理MongoDB的主要进程。它处理数据请求,管理数据存储,和执行后台管理操作。当我们运行mongod命令意味着正在启动MongoDB进程,并且在后台运行。 |
net start mongodb | 启动 MongoDB服务 |
sc delete mongodb | 删除 MongoDB服务 |
mongod --remove | 卸载 MongoDB服务 |
net stop mongodb | 关闭 MongoDB服务 |
(二)数据库增删改查操作
1、创建数据库
注意:该数据库存在,则进入,不存在则创建。
-
use+数据库名:use database_name
在mongodb中的一张表被称为一个集合。
-
db.func1.insert({name:"张三"})
该表不存在则创建,然后插入数据,存在,则进入,插入数据。
2、删除数据库
-
-
删除指定表:db.func1.drop()
-
4、查询数据库
-
-
查看当前存在的数据库位置:db
-
查看数据库内表/集合:show collections
-
查看表的内容db.func1.find()
-
self.client = pymongo.MongoClient(host="localhost", port=27017)
self.db = self.client["spider_data1"]
2、用生成器返回数据
data_list = html.xpath('.//ul[@class="cook-list"]//li[@class="clearfix"]')
for data in data_list:
title = data.xpath('./div[@class="cook-info"]/a/text()')[0]
major = data.xpath('./div/p/text()')[0]
score = data.xpath('./div/div[1]/span[2]/text()')[0]
yield{
"标题":title,
"配料":major,
"评分":score
}
3、循环逐条插入数据库
for item in self.parse_data_index(response):
self.db.douguo1.insert_one(item)
(三)完整代码
import requests
from lxml import etree
import pymongo
class Dou_Guo(object):
def __init__(self):
self.headers={"User-Agent": ""}
self.client = pymongo.MongoClient(host="localhost", port=27017)
self.db = self.client["spider_data1"]
"""发起请求并获取数据"""
def get_data_index(self):
for i in range(0,2):
url = "https://www.douguo.com/caipu/%E5%AE%B6%E5%B8%B8%E8%8F%9C/0/{}".format(i*20)
response = requests.get(url,headers=self.headers)
if response.status_code ==200:
yield response.text
else:
print("url获取失败!")
"""数据解析"""
def parse_data_index(self,resp):
# 创建对象
html = etree.HTML(resp)
# 找到所有标签
try:
data_list = html.xpath('.//ul[@class="cook-list"]//li[@class="clearfix"]')
for data in data_list:
title = data.xpath('./div[@class="cook-info"]/a/text()')[0]
major = data.xpath('./div/p/text()')[0]
score = data.xpath('./div/div[1]/span[2]/text()')[0]
yield{
"标题":title,
"配料":major,
"评分":score
}
except IndexError:
pass
"""实现整个代码的业务逻辑"""
def run(self):
for response in self.get_data_index():
for item in self.parse_data_index(response):
self.db.douguo1.insert_one(item)
if __name__ == '__main__':
process = Dou_Guo()
process.run()
四、pycharm中mongodb的环境配置。
(一)环境配置
- 开pycharm,在打开设置。
- 在打开设置中找到插件管理,搜索mongo plugin。
- 找到此插件,点击下载安装即可。
- 安装成功后,重启pycharm,找到Mongo Explorer。
- 打开之后,连接数据库。
- 点击测试连接。
- 连接成功后,进行案例测试。
(二)案例测试
- 输入以下完整代码。
import pymongo
class MongoDB(object):
def __init__(self):
# mogodb端口默认27017
self.client = pymongo.MongoClient(host="localhost",port=27017)
self.db = self.client["spider_data"]
def add_data_one(self):
# func,创建集合 ; insert_one 插入一条数据
result =self.db.func.insert_one({"name":"张三","age":18,"sex":"男"})
print(result)
def add_data_many(self,data):
result = self.db.func.insert_many(data)
def find_data(self):
result = self.db.func.find({"name":"李四"})
result = self.db.func.find()
for data in result:
print(data)
if __name__ == '__main__':
mdb = MongoDB()
data = [
{"name":"李四","age":20,"sex":"男"},
{"name": "王五", "age": 22, "sex": "男"},
{"name": "赵六", "age": 18, "sex": "男"},
{"name": "李七", "age": 19, "sex": "男"},
]
mdb.find_data()
- 运行之后,点击spider_data的func表。
- 点击之后显示表数据,则表示成功。
如若点击之后不显示可视化数据表信息见以下关于Mongodb在pycharm中可视化问题,链接如下。