本篇博文介绍
知识目标 | 熟悉数据库和集合操作 |
本篇目标 | 掌握 MongoDB 的部署 掌握文档的插入、更新、删除以及查询操作 |
一、MongoDB的安装部署
在浏览器输入网址:www.mongodb.com
选择软件版本、电脑对应的应用系统、安装包形式,选择完毕点击安装即可。
安装的时候推荐大家选择自定义安装,选择安装位置,这里推荐大家安装除C盘以外的盘。
这里不安装可视化工具,把勾给取消掉。
安装完后打开任务管理器查看MongoDB是否正在运行。
随后打开软件安装位置复制安装路径
打开环境变量点系统变量的编辑
新建把复制的安装路径添加进去,点击确定
接下来Win键+R打开cmd,输入mongo回车
回车和上图一样那MongoDB就安装完成了。
二、数据库操作
新建数据库
语法:
use DATABASE_NAME
use:用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。
DATABASE_NAME:数据库名称。
执行use articledb命令,创建数据库articledb。
查看数据库
语法:查看全部数据库
show dbs
或者查看当前数据库,需要先切换到指定数据库
db
删除数据库
语法
db.dropDatabase()
db:表示当前数据库对象。
dropDatabase():用于删除当前数据库的方法。
删除当前数据库,执行命令前应使用use命令切换到要删除的数据库,为了防止误删可执行命令db验证当前数据库是否为指定删除的数据库。
三、集合操作
创建集合
语法
显示创建
db.createCollection(COLLECTION_NAME,[OPTIONS])
隐式创建
db.COLLECTION_NAME.INSERT(DOCUMENT)
db:表示当前数据库对象。
createCollection():创建集合方法。
DOCUMENT表示文档。
COLLECTION_NAME表示集合名称。
OPTIONS表示集合配置。
insert():向集合中插入文档的方法。
例子:
执行"db.createCollection("myCollection")"命令,显式创建集合myCollection。执行"show collections"命令,查看是否成功创建集合。
删除集合
语法
db.COLLECTION_NAME.drop()
db:表示当前数据库对象。
COLLECTION_NAME:表示集合名称。
drop():删除集合方法。
例子:
执行"db.myCollection.drop()"命令,删除集合myCollection。
四、文档操作
文档插入
语法(单文档插入)
db.COLLECTION_NAME.insert(document)
或者
db.COLLECTION_NAME.save(document)
语法(多文档插入)
db.COLLECTION_NAME.insertMany([document1,document2,...])
db:当前数据库对象
COLLECTION_NAME:当前集合对象。
insert()和save():插入单文档方法。
insertMany():插入多文档方法。
insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。若使用save()方法插入文档时,集合中已存在该文档,则会覆盖。
例子:
1、执行"use test"命令,创建并切换到数据库test。
2、隐式创建集合c1并插入文档。命令如下:
db.c1.insert(
{"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001",
"nickname":"Rose","age":"20","phone":"18807141995","createdatatime":new Data(),
"likenum":NumberInt(10),"state":null}
)
3、执行"db.c1.find()"命令,查看集合comment中的文档。
4、向集合comment中插入多文档,命令如下。
db.comment.insertMany([{documet1},{documet2},{documet3}])
文档更新
语法
db.COLLECTION_NAME.update(criteria,objNew,upsert,multi)
db:当前数据库对象。
COLLECTION NAME:当前集合对象。
update():更新文档方法。
criteria:更新的查询条件,类似sql中的where。
objNew:新的对象和操作符,类似sql中的set。
upsert:不存在更新对象时,是否插入,默认为false
multi:默认为false,只更新查找到的第一个文档,反之更新所有。
例子
将键contect的值由“喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有#
升"更新为“喝水增加了尿量,能使有害物质及时排出体内”,具体命令如下。
db.c1.update({"content":"喝水是生命体通过口腔摄入水分的方式,人体每天通过口腔摄入的液体大约有2升"} ,{$set: {"content":"喝水增加了尿量,能使有害物质及时排出体内"}})
升级语法
db.集合名.update (条件,新数据){修改器:{键:值}}
修改器 | 作用 |
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |
案例说明
准备工作:创建c2集合,循环插入文档数据
for(var i=1; i<= 10;i++){
db.c2.insert( "uname":"ab"+i,
"age":i});
}
文档删除
语法(删除单个)
db.COLLECTION_NAME.remove(
<query>,
{
justOne:<boolean>,
writeconcern:<document>
}
)
删除全部文档
db. COLLECTION_NAME.remove({})
db:当前数据库对象。
COLLECTION_ NAME:当前集合对象。
remove():删除文档方法。
query:删除文档的条件,可选参数。
justone:的boolean为true或1时,表示只删除查询出的第一个文档
writeConcern:表示抛出异常级别。
文档简单查询
查询所有文档语法
db.COLLECTION_NAME. Find()
查询所有文档,以易读的方式展示
db.COLLECTION_NAME. Find().pretty()
db:当前数据库对象
COLLECTION NAME:当前集合对象
find():查询所有文档方法
pretty():格式化查询返回结果
按条件查询文档
基础语法:db.集合名.find(条件[查询的列])
条件
查询所有数据{}或者不写
查询age=6的数据 {age:63}
既要age-6又要性别=男{age:6,sex:'男'}
查询的列(可选参数
不写-这查询全部列(字段
{age:1}只显示age列(字段
{age:0}除了age列(字段都显示
留心:不管你怎么写系统自定义的_id都会在
例子
查询age为4,只显示它的姓名;
升级语法
db.集合名.find({键:值})注:值不直接写
{运算符:值}
db.集合名.find({
键:{运算符:值}
})
例子
1查询年龄大于5岁的数据
db.c1.find({age: {$gt:5}})
2查询年龄是18岁、20岁、25岁的数据
db.c1.find({age:{$in:[18,20,25]}})
文档总结
db.集合名.insert(JSON数据)
db.集合名.remove(条件[,是否删除一条true是false否默认])
也就是默认删除多条
db.集合名.update(条件,新数据[,是否新增,是否修改多条])
升级语法
db.集合名.update(条件,{修改器:{键:值}})
db.集合名.find(条件[,查询的列])
本篇总结
MongoDB是一种流行的NoSQL数据库管理系统,它以其灵活的数据模型和高性能而闻名。以下是MongoDB基本操作的总结:
1. 连接数据库:
- 使用命令行工具或客户端连接到MongoDB数据库。
- 在命令行中使用`mongo`命令来连接本地数据库,默认端口为27017。
2. 创建数据库:
- MongoDB中的数据库不需要预先创建,当你插入第一条数据时,如果指定的数据库不存在,MongoDB会自动创建该数据库。
3. 切换数据库:
- 使用`use <database_name>`命令来切换到指定的数据库。
4. 创建集合:
- 使用`db.createCollection('<collection_name>')`命令在当前数据库中创建一个新的集合。
5. 插入文档:
- 使用`db.<collection_name>.insertOne(<document>)`或`db.<collection_name>.insertMany([<document1>, <document2>, ...])`来插入一个或多个文档到集合中。
6. 查询文档:
- 使用`db.<collection_name>.find(<query>)`来查询符合条件的文档。
- 可以添加条件、投影、排序等选项来进一步筛选和排序结果。
7. 更新文档:
- 使用`db.<collection_name>.updateOne(<filter>, <update>)`或`db.<collection_name>.updateMany(<filter>, <update>)`来更新符合条件的文档。
8. 删除文档:
- 使用`db.<collection_name>.deleteOne(<filter>)`或`db.<collection_name>.deleteMany(<filter>)`来删除符合条件的文档。
9.备份与恢复:
可以使用mongodump和mongorestore命令进行备份和恢复MongoDB数据库。
10.安全性:
设置适当的用户权限和身份验证是保护MongoDB数据安全的重要手段。可以通过创建用户并设置角色权限来实现安全访问控制。
以上是MongoDB基本操作的总结,希望对你有所帮助!