mongo三个概念
如何下载MongoDB
参考(5条消息) mongodb免安装配置_剑客916的博客-CSDN博客
(5条消息) MongoDB的安装配置教程(很详细,你想要的都在这里)_狮子座的男孩的博客-CSDN博客_mongodb配置
- 下载地址 Download MongoDB Community Server | MongoDB
- MongoDB的版本偶数版本为稳定版,奇数版本为开发版。
- MongoDB对于32位系统支持不佳,所以3.2版本以后没有再对32位系统的支持。
之后一直下一步
等待安装完成。
配置环境变量
配置path mongodb的bin目录位置
测试是否配置成功
在cmd命令框输入mongod 不报错即成功
在D盘根目录
创建一个文件夹 data
在data中创建一个文件夹 db
这个db就是默认的数据库,用来存放数据
打开cmd命令行窗口(注意这里要在mongo的bin目录下输入cmd)
输入 mongod --dbpath D:\data\db 启动mongodb服务器
注意: 32位系统第一次启动:输入如下内容,64位忽略
mongod --storageEngine=mmapv1
再打开一个cmd窗口 输入 mongo 连接mongodb, 出现 > 就成功了
此时D:\data\db目录下多了很多文件
mongod --dbpath D:\data\db --port 10086
--dbpath 指定数据库路径
--port 指定端口号 最大不要超过65535
数据库(database)
- 数据库的服务器
服务器用来保存数据
1. mongod 用来启动服务器(在一个命令窗口输入)
- 数据库的客户端
客户端用来操作服务器,对数据进行增删改查的操作
2. mongo 用来启动客户端(在另一个命令窗口输入,之前那个不要关闭)
mongodb设置为系统服务(可以自动在后台启动,不需要每次都手动启动)
1.在刚刚创建的data目录下创建logs文件夹
在mongo的bin目录同级创建一个mongod.cfg文件里面配置 这里截图少了d
systemLog:
destination: file
path: d:\data\logs\mongo.log
storage:
dbPath: d:\data\db
以管理员的身份打开命令行窗口
执行如下的命令
sc.exe create MongoDB binPath= "\"D:\mongoDB\bin\mongod.exe\" --service --config=\"D:\mongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
高版本默认带的有,不需要配置
打开任务管理器 打开服务 启动mongo服务
此时没有一个命令窗口,打开一个新的 输入 mongo
如果启动失败,证明上边的操作有误,
在控制台输入 sc delete MongoDB 删除之前配置的服务
然后从第一步再来一次
我这里理解是就是集合就像是一张表,文档就是每条数据(行数据)。
基本使用
基本概念:
数据库(database)
集合(collection)
文档(document)
在MongoDB中,数据库和集合都不需要手动创建
当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
基本指令:
show databases
show dbs
显示当前的所有数据库
use 数据库名 进入到指定的数据库中
db 表示的是当前所在的数据库
show collections 显示数据库中所有的集合
数据库的CRUD的操作
MongoDB CRUD操作_MonogDB 中文网
向数据库中插入文档
db.<conllection>.insert(doc)
向集合插入一个文档
例子:向test数据库中,stus集合中插入一个新的学生对象
{name:"孙悟空",age:18,gender:"男"}
db.stus.insert({name:"孙悟空",age:18,gender:"男"})
db.<collection>.find() 查询集合中的文档
下载可视化freeware
Download NoSQL Manager for MongoDB (mongodbmanager.com)
(5条消息) NoSQL Manager for MongoDB Freeware安装配置_Space Tripper的博客-CSDN博客_nosql manager for mongodb freeware
向数据库插入文档
db.<collection>.insert()
- 向集合中插入一个或多个文档
- 当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添 加_id 该属性用来文档的唯一标识
- _id我们可以自己指定,如果我们指定了数据库就不会在添加了,如果自己指定_id也必 须确保他的唯一性
db.stus.insert({name:"zhubajie",age:437,gender:"nan"});
db.stus.insert([
{name:"zhubajie1",age:437,gender:"nan"},
{name:"zhubajie2",age:437,gender:"nan"},
{name:"zhubajie3",age:437,gender:"nan"}
]);
db.collection.insertOne() 插入一个文档对象
db.collection.insertMany() 插入多个文档对象
查询
db.<collection>.find()
- find() 用来查询集合中所有符合条件的文档
- find()可以接受一个对象作为条件参数
{}表示查询集合中所有的文档
{属性:值} 查询属性是指定值的文档
db.stus.find({name:"zhubajie"})
同时满足多个条件
db.stus.find({name:"zhubajie",age:999})
db.<collection>.findOne() 用来查询集合中符合条件的第一个文档
findOne()返回的是一个文档对象
db.stus.findOne({age:28}).name;
db.<collection>.find().count()或者db.<collection>.find().length()返回个数
修改
db.<collection>.update(查询条件,新对象);
- update() 默认情况下会使用新对象来替换旧的对象
- 如果要修改指定的属性,而不是替换需要使用"修改操作符"来完成修改
$set 可以用来修改文档中的指定属性
db.stus.update( {"_id":ObjectId("638afc9ef65437555a3942dd")}, {$set:{ name:"lalalala", address:"ancoanc" }} )
$unset 用来删除文档的指定属性 address后边无所谓
db.stus.update( {"_id":ObjectId("638afc9ef65437555a3942dd")}, {$unset:{ address:"ancoanc" }} )
update默认只会修改一个 比如两个name为猪八戒 ,只有一个会被修改
update修改多个
db.<collection>.updateMany() 同时修改多个符合条件的文档
db.<collection>.updateOne() 修改一个符合条件的文档
db.<collection>.replaceOne() 替换一个符合条件的文档
删除
db.<collection>.remove() 可以根据条件来删除文档,传递的条件的方式和find()一样
remove() 删除符合条件的所有文档
如果remove()第二个参数传递一个true,则只会删除一个
如果只传递一个空对象作为参数,则会删除集合中的所有文档
db.<collection>.remove({});
db.<collection>.deleteOne()
db.<collection>.deleteMany()
db.stus.drop(); 删除集合,集合都会删除
db.dropDatabase();删除数据库
内嵌文档查询操作:属性要加单引号
$push向数组中添加一个新的元素 允许重复
$addToSet 向数组中添加一个新元素 如果存在则不添加,不存在添加
查看numbers集合中的第11条到第20条数据 也就是分页
mongodb整合springboot
(5条消息) spring cloud集成MongoDB_普通网友的博客-CSDN博客_springcloud集成mongodb