mongodbs使用
1、下载安装mongodb
官网:https://www.mongodb.com/download-center/enterprise
安装时不要勾选install mongodb compass
,点击后翻墙下载官方可视化管理工具,安装不上。
安装教程:https://www.cnblogs.com/zhif97/p/12806245.html
2、操作数据库
- 重新打开一个cmd控制台输入
mongo
进入环境,开始进行增删改成操作show dbs
:显示所有的数据库db
:显示当前正在使用的数据库use 数据库名
:切换到指定的数据库,有就切换,没有就创建切换db.dropDatabase()
:删除当前执行的数据库
3、集合操作及数据操作
1、创建集合
-
db.createCollection("集合名",{capped:true,size:1024\*30})
:创建一个集合capped:true.指定库的大小,默认false,即自动分配
size:1024*30这是30m的库,基于kb的
show collections : 查看当前使用集合
了解就行,不需要记,基本是多余的一步
2、创建并写入数据
db.集合名.insertOne(写入集合的一条数据)
:像集合写入一条数据,没有此集合会先创建再写入db.集合名.insertMany(数组对象)
:写入多条数据,同上- 写入数据不是覆盖式写入,而是追加写入
3、查看、切换集合
show collections
:查看当前库里面所有的集合use 集合名
:切换到指定的集合
4、删除集合
db.集合名.drop()
:删除指定的集合,但必须是切换到集合所在库的环境下进行。db.集合名.remove({})
:清空集合内的所有数据
5、查看数据
注意:由于写入的是键值对,所有查找的条件也必须是{键值对}。
db.集合名.find()
:查看集合全部数据db.集合名.find(条件)
:按条件进行精确查找db.集合名.find(条件1,条件2)
查找满足条件1且满足条件2db.集合名.find($or:[条件1,条件2])
查找满足条件1或者条件2db.集合名.findOne(条件)
:查找显示符合条件的第一条数据db.集合名.find({"键":{$regex:"值"}})
:按条件模糊查询db.集合名.find({"键":正则表达式})
使用正则条件查询db.集合名.find({"age":{$gt:20}})
:查找年龄大于20$gt
:大于$lt
:小于$gte
:大于等于$lte
:小于等于$ne
:不等于$eq
:等于db.集合名.find().sort({age:1})
:按照年龄的正序查找db.集合名.find().sort({age:-1})
:按照年龄的倒序查找db.集合名.find().count()
:获取集合有条数db.集合名.find().skip(数字)
:获取指定条后的数据db.集合名.find().limit(数字)
:指定获取多少条数据db.集合名.find().skip(数字).limit(数字)
:获取指定条后的几条数据- 以上find()后面的都是可以混合着写的。
db.集合名.find({field: {$in: [ '值1', '值2' ]}})
; field只要和array中的任意一个value相同,那么该文档就会被检索出来 —— 包含$nin
—— 不包含
6、删除数据
db.集合名.remove(条件)
:删除指定条件的数据
db.集合名.deleteMany({})
:删除所有数据
db.集合名.deleteMany({条件对象})
:删除所有符合条件的数据
其他的和查找数据一样,
7、修改数据
db.集合名.update(筛选条件,{重新写入内容},false)
:重新写入筛选出来的数据。默认false,即筛选不到不创建。改成true就会创建db.集合名.update(筛选条件,($set{重新部分内容}))
:修改部分内容。同上
8、索引🌙
为集合建立索引,基于title(还可以是id,就是建立主键)作用是加快查询
>db.col.createIndex({"title":1})
9、聚合(很少用)
MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。
> db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
{
"result" : [
{
"_id" : "runoob.com",
"num_tutorial" : 2
},
{
"_id" : "Neo4j",
"num_tutorial" : 1
}
],
"ok" : 1
}
>
表达式 | 描述 | 实例 |
---|---|---|
$sum | 计算总和。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { s u m : " sum : " sum:"likes"}}}]) |
$avg | 计算平均值 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { a v g : " avg : " avg:"likes"}}}]) |
$min | 获取集合中所有文档对应值得最小值。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m i n : " min : " min:"likes"}}}]) |
$max | 获取集合中所有文档对应值得最大值。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", num_tutorial : { m a x : " max : " max:"likes"}}}]) |
$push | 在结果文档中插入值到一个数组中。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { p u s h : " push: " push:"url"}}}]) |
$addToSet | 在结果文档中插入值到一个数组中,但不创建副本。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", url : { a d d T o S e t : " addToSet : " addToSet:"url"}}}]) |
$first | 根据资源文档的排序获取第一个文档数据。 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", first_url : { f i r s t : " first : " first:"url"}}}]) |
$last | 根据资源文档的排序获取最后一个文档数据 | db.mycol.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup : {_id : "by_user", last_url : { l a s t : " last : " last:"url"}}}]) |
4、数据可视化
教学网站:https://blog.csdn.net/weixin_39999535/article/details/81383196
上面的软件是付费使用的,还有免费的软件NoSQLBooster
软件的使用基本一样,链接数据库需要百度看看
上面的增删改查(CURD)操作的mongodb语法上面有