MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
一、环境配置
(一)下载地址
这里为大家下载好了,也可以网盘自取:
- 链接: 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,即显示初始化的三个数据库。
(一)创建数据库
注意:该数据库存在,则进入,不存在则创建。
-
use+数据库名:use database_name
在mongodb中的一张表被称为一个集合。
-
db.func1.insert({name:"张三"})
该表不存在则创建,然后插入数据,存在,则进入,插入数据。
(二)删除数据库
-
删除指定数据库之前,先进入该数据库:db.dropDatabase()
-
删除指定表:db.func1.drop()
-
指定删除数据:db.func.remove({name:"张三"})
(三)修改数据库
-
修改指定数据:db.func.update({name:"坤哥"},{$set:{name:"坤姐"}})
(四)查询数据库
-
查看数据库:show dbs
-
查看当前存在的数据库位置:db
-
查看数据库内表/集合:show collections
-
查看表的内容db.func1.find()
-
指定查看表的具体内容db.func1.find({name:"张三"})
三、案例
结合pycharm将数据,保存至mongodb数据库,在这里以豆果美食代码为例。
(一)导入模块
- import pymongo
(二)连接数据库
1、在基础属性中添加连接数据库的代码
-
若数据库不存在则自动创建数据库。
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中可视化问题,链接如下。
标签:__,name,MongoDB,self,db,data,数据库 From: https://www.cnblogs.com/LoLong/p/17007578.html