mongodb 字段出现次数_MongoDB数据库

内容回顾

  • Xpath选择器
    不要求记忆,只要混个眼熟即可
  • 基于openpyxl模块爬取豆瓣电影
    单页爬取
    多页爬取

1.校验请求头里面是否有User-Agent参数
请求头里面加上即可
2.限制IP规定时间内的访问次数
1.人为的加上时间延迟
在你的程序里面加上time.sleep()让你的程序间歇一段时间之后再执行
2.IP代理池

  • 非关系型数据库之MongoDB

关系型数据库与非关系型数据库

常见数据库软件的端口号

3306 MySQL

6379 redis

27017 MongoDB

今日内容概要

  • MongoDB下载与安装
  • 基本命令操作
  • 账号创建及权限管理
  • 快捷操作MongoDB软件
    Navicat
    Robo 3T

今日内容详细

MongoDB下载与安装

百度搜索官网点击社区版本(community server)下载即可

安装步骤可以参考:MongoDB 教程 | 菜鸟教程

1.下载.msi的文件

2.完成后双击该文件

custom自定义安装路径(放到D、E、F盘的根目录下)

D:

E:

F:

不要勾选install MongoDB Compass

3.手动在MongoDB文件夹根目录下(自动创建了就不要创了 版本原因)

1.创建data文件夹

然后再data文件夹内创建db文件夹

2.创建log目录

然后在log目录下创建mongod.log文件

4.将mongod.exe文件所在的路径添加到环境变量中

mongod.exe mongodb数据库的服务端

mysqld.exe MySQL数据库的服务端

5.在MongoDB文件夹根目录下

创建mongod.cfg文件

在该文件内拷贝以下代码

systemLog:

destination: file

path: "D:MongoDBlogmongod.log"

logAppend: true

storage:

journal:

enabled: true

dbPath: "D:MongoDBdatadb"

net:

bindIp: 0.0.0.0

port: 27017

setParameter:

enableLocalhostAuthBypass: false

6.系统服务制作

一定要用管理员身份打开cmd终端

mongod --config "D:MongoDBmongod.cfg" --bind_ip 0.0.0.0 --install

或者直接在命令行指定配置

mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:MongoDBlogmongod.log --logappend --dbpath D:MongoDBdatadb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --auth

注意这里--auth如果没有创建权限管理就不要加

7.启动关闭

net start MongoDB

net stop MongoDB

8.登录

mongo

MongoDB重要概念

"""

MySQL中三个重要概念

库 文件夹

表 文件夹里面的文件

记录数据 文件里面的一行行数据

"""

# 查看所有的库

show databases; # MySQL命令

show dbs # MongoDB命令

SQL术语/概念 MongoDB术语/概念 解释/说明

database database 数据库

table collection 数据库表/集合

row document 数据记录行/文档

column field 数据字段/域

index index 索引

inner join 表连接,MongoDB不支持

primary key primary key MongoDB自动将_id字段设置为主键

库的增删改查

1.创建

use 库名 # use db1

# 库不存在会自动创建(临时先创建在内存中) 但是只有当你真正在该库里面产生数据之后才会刷到硬盘(再保存到硬盘) 如果不录入数据则创建的库就没了 所以用show dbs可能查看不到

2.查看

show dbs

3.改(忽略)

4.删

要先有数据的库才能删除

use db1

db.db1.insert({'name':'jason'})

db.dropDatabase() (这里敲代码时tab键补全)

集合的增删改查

1.查

show tables

2.增

db.集合名 # 规律跟 use 库名一致 里面没有数据是show不出来的 db是关键字

db.createCollection(集合名) # db.createCollection('t2') # 直接写入硬盘

3.改(忽略)因为没有固定表结构没有字段 字段名 字段类型

4.删

db.集合名.drop() # db.t2.drop()

文档增删改查

1.增

单条

db.集合名.insert({...}) # db.t1.insert({'name':'jason'})

等价于

db.集合名.save({...})

多条

db.集合名.insert([{...},{...},{...},{...}])

2.查

查询所有

db.集合名.find() # db.t1.find()

3.改

db.集合名.update(

筛选条件

新的内容

)

db.t1.update({'name':'jason1'},{$set:{'name':'jason111'}})

4.删

db.集合名.remove(

筛选条件

)

db.t1.remove({'name':'jason2'})

#1、删除多个中的第一个

db.t1.deleteOne({ 'age': 8 })

#2、删除国家为China的全部

db.t1.deleteMany( {'addr.country': 'China'} )

#3、删除全部

db.t1.deleteMany({})

用户创建及权限管理

正常的数据库软件都应该有用户及对应的权限管理

不可能所有人都是管理员都可以对所有的数据进行操作

有些用户只可以查看,有些用户可以修改,有些用户可以删除...

管理员账户需要在admin数据库下创建

1.切换到admin数据库下

use admin

2.创建账户并且赋予权限

db.createUser(

{

user: "root",

pwd: "123",

roles: [ { role: "root", db: "admin" } ]

}

)

其他用户在test数据库下创建

1.切换到test数据库下

use test

2.创建账户并赋予权限

db.createUser(

{

user: "jason",

pwd: "123",

roles: [ { role: "readWrite", db: "test" },

{ role: "read", db: "db1" } ]

}

)

'''上述账户都可以创建多个'''

先停止服务

net stop MongoDB

再移除服务

mongod --remove

20e78f5d67cc556024dd1462e4990e3a.png

再次添加

mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:MongoDBlogmongod.log --logappend --dbpath D:MongoDBdata --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --auth

再次启动

net start MongoDB

两种验证方式

1.直接在登录的时候验证

mongo -u "root" -p "123" --port 27017 --authenticationDatabase "admin"

2.进入之后再验证

mongo

use admin

db.auth("root","123")

注意在切换账户时普通用户不能直接切换到管理员身份需要exit退出后重新进入

作业

1.记忆关系型数据库的ACID四大特性

  • 原子性(Atomicity):化学中的原子指不可再分的基本微粒,数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某个环节。如果事务执行过程中出错就会回滚到事务开始前的状态,所有的操作就像没有发生一样不会对数据库有任何影响。
  • 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还是5000,这就是事务的一致性。
  • 隔离性(Isolation):当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离,比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转入钱。
  • 持久性(Durability):一个事务一旦被提交,则对数据库的所有更新将被保存到数据库中,不能回滚。

2.自己总结归纳数据库三大范式

第一范式(保证每列具有原子性,列不可再分)。

第二范式( 确保表中的每一列都和主键相关)

第三范式 (数据库中的每一列和主键列直接相关而不是间接相关)

3.自己独立完成数据库的安装并创建两个管理员账户三个普通用户账户

三个普通账户各自权限都不一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相似三角形·中考

概述相似,主要是相似三角形,在中考中有举足轻重的地位,难度也较高,往往倒三题中至少有一题是圆和相似的结合相似常常和四边形、反比例函数、圆、二次函数等结合,十分灵活 比例性质 概念若$\displaystyle \frac{a}{b}\f…

php 对接 北向数据接口 socket

function encode($msgType, $timeStamp, $body) {return "\xFF\xFF".pack(CNn, $msgType, $timeStamp, strlen($body)).$body;}$connection->send(encode(1, time(), reqLoginAlarm;userxxx;keyxxx;typexxx)); 详情参考: 请教使用socket做为客户端和北向接口对接&…

编译后没有taget文件夹_maven资源文件的相关配置才会在编译后的target里面有

建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。src/main/java和src/test/java这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targ…

配置gunicorn、 nginx、supervisor

1、建立引导,参考博文:https://www.cnblogs.com/wxzbk/p/10335859.html2、启动测试gunicorn -b 0.0.0.0:8080 run:app #run是引导文件,APP是模块名3、配置nginx1.跳转:cd /etc/nginx2.跳转:cd sites-available3.创建配…

添加icon_在zotero中添加百度学术、中国知网的文章检索引擎

方法关于添加文章检索引擎的方法,首先是参考官方文档:locate [Zotero Documentation]。里面提到有一个官方随时更新的engines.json文件,下载下来,保存到相应的文件夹就可以了。另外官方文档里还提供了一张检索引擎列表&#xff0c…

协变和逆变-Covariance and Contravariance

在C#4.0新特性介绍中,总是免不了对协变和逆变的介绍。但似乎协变逆变又很鸡肋。我试图简单地讲下协变(Covariance)和逆变(Contravariance)。 1,Co&Contravariance并非C#4.0引入的,早在C#1.0中就有了。只是C#4.0加入…

汉字笔画动图怎么做_动态图示范汉字笔顺标准,超全面!

忄先写点和点,最后写竖。匕先写撇,后写竖弯钩。万先写横,再写横折钩,后写撇。母字的最后三笔是点、横、点。及先写撇,再写横折折撇,后写捺。乃先写横折折撇,再写撇。这个字和及字形相近&#xf…

孙悟空的师父是谁? (ZT)

猜测之一 孙悟空是只石猴,很多年后有人说他是这本书的真正主角,其实这是不恰当的,他只是“第一主角”。因为西游的队伍里每个人都是主角,包括龙马。 孙悟空是天产石猴,生于花果山水帘洞,得育明师。修成大道…

decimalformat精度丢失_php intval 两位小数乘以100后结果少1

ASP.NET Core开发-后台任务利器Hangfire使用ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...【转】NGUI创建UIRoot后报NullReferenceException的解决办法…

小米用户画像_腾讯企鹅智库发布手机品牌用户画像:华为一二线城市用户少于小米...

近日,腾讯旗下企鹅智库公布了《2019中国网民智能手机购机用户画像分析》,统计了国内各大手机品牌的用户特征,结论非常有趣。《分析》统计显示,苹果是所有手机品牌中一线城市用户占比最高的品牌,占比高达31.4%&#xff…

NLP(二十一)根据已有文本LSTM自动生成文本

根据已有文本LSTM自动生成文本 原理 与股票预测类似,用前面的n个字符预测下一个字符https://www.cnblogs.com/peng8098/p/keras_5.html代码from __future__ import print_function import numpy as np import random import syspath rshakespeare_final.txt text …

友盟小米收不到推送消息_Android 推送集成华为,小米,友盟

在小米推送运营平台创建应用,地址点这里, 获取到 AppID , AppKey把从小米下载的 jar 放到 libs 下在 AndroidManifest.xml 中添加权限配置推送服务需要的service和receiverandroid:enabled"true"android:process":pushservice"android:name&quo…

RHEL7单独安装图形X11

RHEL7 默认是最小化安装(Minimal Install),没有图形界面,我们应该选择Server with GUI。若已错过此步骤,我们采用以下方式补充安装GUI界面。 # yum group list Available Environment Groups:Minimal InstallCompute N…

485通讯线是几芯的_小令老师说门禁| 为什么485门禁必然会取代韦根?

韦根和485(RS485)是两种不同的通讯协议。通讯协议解决的是通讯双方数据如何传输和如何控制的问题。对于门禁而言,指的是读头和控制器之间的通讯。传统门禁很多采用韦根通讯方式,而现在485更为普及,大部分韦根门禁也完成…

【第57题】【062题库】2019年OCP认证062考试新题

57题、choose one Which statement is true about a database in ARCHIVELOG mode? A) Full database backups can be performed when the database is opened. B) A Fast Recovery Area (FRA) must be configured for the database. C) Online redo log files have to be mul…

epoll nio区别_大厂面试系列(二)::NIO和Netty

NIO和Netty面试题 NIO 阐述 NIO原理?BIO/NIO/AIO有什么区别?有那些实现?讲讲NIO的原理与实现?NIO用到了哪个经典技术思想?JDK1.8中NIO有做什么优化了解多路复用机制 常见问题 同步阻塞、同步非阻塞、异步的区别&#x…

【第58题】【062题库】2019年OCP认证062考试新题

58题、choose two Which two statements are true about Oracle network connections? A) A listener may listen on behalf of only one database instance at a time. B) A server process checks a users authentication credentials and creates a session if the credent…

树莓派不支持显示器_Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器)...

一. 准备工作1. 树莓派主板型号:树莓派3 B型处理器:四核64位ARM Cortex-A53 CPU内核架构:ARMv82. 一张大于8G的TF卡(本人用的是32G的,也作为PiLFS用)3. 一台笔记本电脑,一根网线4. 点击此找到并下载 Raspbian 系统初学…

Google搜索:HTML5 金海龙

想找到我,记得Google搜索! 博客地址没必要记忆! Google一下,总能找到我! 我喜欢你们Google搜索:.net 金海龙 本站有关于HTML5 Canvas的技术文章都可以在国际网站“http://htmlcanvas.webgarden.com”上找到…

拦截地址栏参数_selenium操作chrome时的配置参数

参数说明:about:version - 显示当前版本about:memory - 显示本机浏览器内存使用状况about:plugins - 显示已安装插件about:histograms - 显示历史记录about:dns - 显示DNS状态about:cache - 显示缓存页面about:gpu -是否有硬件加速about:flags -开启一些插件 chrome…