当前位置:网站首页>mongoDB database
mongoDB database
2022-08-07 19:23:00 【Button 1 send hell fire】
MongoDB概述
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.
它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.
MongoDB服务端可运行在Linux、Windows平台,支持32位和64位应用,默认端口为27017.
推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB.
NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.
NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展.
安装和启动
下载安装
MongoDB Community Download | MongoDB

安装完成后添加到系统环境变量
将binThe location of the directory is configured as an environment variable
C:\Program Files\MongoDB\Server\5.0\bin
在cmd中输入mongodIf a message appears, the installation is successful
mongodb默认的端口:27017

代表 mongodb服务已经启动了
can also be seen in the service

安装MongoDB图形化界面
使用
基本使用
show dbs 或show databases
查看所有的数据库use xxx
切换到指定的数据库db
查看当前操作的数据库show collections
查看当前数据库中所有的集合
数据库的CRUD操作
db表示的是当前操作的数据库collectionName表示操作的集合,若没有,则会自动创建
插入的文档如果没有手动提供_id属性,则会自动创建一个
插入多条数据
插入数据
插入一条数据
db.collectionName.insertOne( {name:'cxk',like:['唱','跳','rap','篮球']} )
插入多条数据
Put an object in an array
db.collectionName.insertMany( [
{name:'cxk',like:['唱','跳','rap','篮球']},
{
{name:'wyf',like:'踩缝纫机'}}
] )
可以插入一个或多个
db.collectionName.insert()
查询数据
db.collectionName.find()
查询集合所有的文档,即所有的数据.
查询到的是整个数组对象.在最外层是有一个对象包裹起来的.
条件查询
db.collectionName.find({name:"蔡徐坤"})结果返回的是一个【数组】,可以在后面直接取索引下标
查找第一个
db.collectionName.findOne()
返回的是查询到的对象数组中的第一个对象(返回的是对象)
查询文档个数
db.collectionName.count查询操作符的使用
比较操作符
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$ne 不等于
$eq 等于的另一种写法
$or 或者
// 大于200
db.users.find({num:{$gt:200}})
// 大于200且小于300
db.users.find({num:{$gt:200,$lt:300}})
//大于300或小于200
db.users.find(
{
$or:[
{num:{$gt:300}},
{num:{$lt:200}}
]
}
)
分页查询
db.users.find().limit(10) // 前10条数据
db.users.find().skip(10).limit(10) // 跳过前10条数据,即查询的是第11-20条数据
排序
find查询结果默认是id升序排序查询的
skip,limit,sort可以以任意的顺序调用,最终的结果都是先调sort,再调skip,最后调limit
// 1表示升序排列,-1表示降序排列
db.my.find().sort({_id:1})
// 先按照_id升序排列,如果遇到相同的_id,则按count降序排列
db.my.find().sort({_id:1,count:-1})
db.my.find().skip(10).limit(10).sort({_id:1,count:-1})
修改数据
替换整个文档
db.collectionName.update(condiction,newDocument)
修改对应的属性,需要用到修改操作符,比如$set,$unset,$push,$addToSet $pop
db.collectionName.update(
{_id:1}, // 查询条件
{
// 修改对应的属性
$set:{
name:'wyf',
like:'大碗宽面'
}
// 删除对应的[属性]
$unset:{
life:1 //这里的1可以随便改为其他的值,无影响
}
}
)
update默认与updateOne()等效,即对于匹配到的文档只更改其中的第一个
updateMany()可以用来更改匹配到的所有文档
db.students.updateMany(
{name:'cxk'},
{
$set:{
age:25,
like:''背带裤
}
}
)
向数组中添加数据$push
db.users.update({name:'蔡徐坤'},{$push:{"song":'鸡你太美'}})
// 如果数据已经存在,则不会添加
db.users.update({name:'yk'},{$addToSet:{"song":'鸡你太美'}})
自增自减操作符$inc
// 让num自增1
{$inc:{num:1}}
// 让num自减1
{$inc:{num:-1}}
// 给工资低于1000的员工增加400的工资
db.emp.updateMany({sal:{$lt:1000}},{$inc:{sal:400}})
删除数据
db.collectionName.remove()
remove默认会删除所有匹配的文档.相当于deleteMany()
remove可以加第二个参数,表示只删除匹配到的第一个文档.此时相当于deleteOne()
db.my.remove({name:'蔡徐坤',true})
db.collectionName.deleteOne()
db.collectionName.deleteMany()
删除所有数据
db.my.remove({})
删除集合
db.my.drop()
删除数据库
db.dropDatabase()
注意:删除某一个文档的属性,应该用update.
remove以及delete系列删除的是整个文档
边栏推荐
- 陆金所管理层动荡:冀光恒卸任董事长职务 CFO郑锡贵也退休
- 第61章 Jquery JSON Table EntityFrameworkCore自动生成数据库
- [2022 Hangdian Multi-School 5] Count Set (generating function divide and conquer NTT)
- 语法基础(变量、输入输出、表达式与顺序语句)
- 9. The usage of squeeze in paddlepaddle, cut to the desired dimension
- Promise笔记
- 线性预测和自回归建模
- amh 数据库导入功能的建议?
- Leetcode 算法面试冲刺 热题 HOT 100 刷题(337 338 347 394 399)(六十八)
- Mysql.解释器explain
猜你喜欢
随机推荐
[chestnut sugar GIS] DOS - how to delete a specific folder
Mysql.索引篇 一次搞清楚八股文
朝阳区联合360集团共同打造中小企业安全服务平台
Lufax management turmoil: Ji Guangheng resigns as chairman, CFO Zheng Xigui also retires
云原生核心技术(一文搞懂云原生)
Web page translation plugin
Leetcode 算法面试冲刺 热题 HOT 100 刷题(337 338 347 394 399)(六十八)
[Educational Codeforces Round 133 F] Bags with Balls
国内多位架构大牛强烈推荐的大型分布式手册
ctfshow七夕杯web
什么是死锁?怎么解决死锁问题?
【C#语言】DataGridView删除行
Promise笔记
数据库读取数据源配置实现动态数据源
谷粒商城项目搭建
第三章 运算符与标识符与关键字
redis源码阅读-zset
Language Translator - Online Language Translator Free
数据库小记
JVM命令:jsp(找进程),jstack(线程栈),jmap(内存),jinfo(参数)







