首页 > 数据库 >MongoDB

MongoDB

时间:2022-12-27 11:33:20浏览次数:84  
标签:__ name MongoDB self db data 数据库

  MongoDB是一个基于分布式文件存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。   MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引

一、环境配置

(一)下载地址

这里为大家下载好了,也可以网盘自取:

(二)安装步骤

  • 按照提示点击下一步即可,需要注意的是记住保存的路径。
  • 建议:在自定义文件路径时,新建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

相关文章

  • 关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB
    一、关系型数据库系统理论知识1.1学习笔记​​数据库系统概念读书笔记-引言​​数据库系统概念读书笔记-关系数据库数据库系统概念读书笔记-数据库发展史(上)数据库系统概念......
  • mongodb定时备份
    1、https://www.jianshu.com/p/a9352e28e2d6  (未测试)通过centos脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份具体操作:1、创建Mongodb数据......
  • mongodb shell设置
    [root@host-172-16-13-179~]#cat/root/.mongorc.jshost=db.serverStatus().host;cmdCount=1;prompt=function(){returndb+"@"+host+""+(cmdCount++)+">";}func......
  • MongoDB - 模式设计
    注意事项模式设计,即在文档中表示数据的方式,对于数据表示来说时非常关键的。为MongoDB做模式设计时,在性能、可伸缩性和简单性方面是重中之重,也需要考虑一些特别的注意事......
  • MongoDB 索引原理与索引优化
    转载请注明出处:1.MongoDB索引索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种......
  • 使用 REST 访问 MongoDB 数据
    本指南将引导您完成创建应用程序的过程,该应用程序通过基于超媒体休息的前端。您将构建什么您将构建一个Spring应用程序,该应用程序允许您创建和检索存储在​​Person​​蒙......
  • mongodb查看数据库和表的信息
    mongodb查看数据库和表的信息mongodb查看数据库和表的方法比较简单,在为这里推荐使用stats的方法,直观并且详细。1、查看数据库db.stats();1输出:{"db":"sirius","colle......
  • SpringBoot2.x系列教程51--NoSQL之SpringBoot整合MongoDB
    SpringBoot2.x系列教程51--NoSQL之SpringBoot整合MongoDB作者:一一哥一.MongoDB1.MongoDB简介MongoDB一词来自于英文单词“Humongous”,中文含义为“庞大”,是由C++语言编写......
  • MongoDB 3.x版本无法找到mongod.cfg文件以及无法开启远程访问的解决方案
    本篇博客主要在于解决mongodb3.6版本开启远程访问,并非mongodb软件安装指南。如果你安装后可以看到bin\mongod.cfg文件,那么无需看此博客这里附一条安装方法的连接https://bl......
  • MongoDB从入门到实战之MongoDB快速入门
    前言 上一章节主要概述了MongoDB的优劣势、应用场景和发展史。这一章节将快速的概述一下MongoDB的基本概念,带领大家快速入门MongoDB这个文档型的NoSQL数据库。Mongo......