首页
社区
课程
招聘
【MongoDB】基本命令使用
发表于: 2021-8-5 13:39 1109

【MongoDB】基本命令使用

2021-8-5 13:39
1109

前言

  • 对于MongoDB学习注入之前,先进行一些知识储备

  • 环境-ubuntu18.04

基本启动操作

MongoDB的服务启动

service mongodb start #启动服务
service mongodb status #确定服务是running中

查询MongoDB的端口

netstat -tulnp|grep mongo #一般27017
关闭MongoDB可以直接kill ps auxw里面杀死pid进程

打开MongoDB的客户端

find / -name mongo -print #找到客户端的位置
/usr/bin/mongo 127.0.0.1:27017 #直接进入和mysql一样登陆一样

基本命令

show dbs; #数据库
user admin; #使用x数据库
show tables; #显示当前表
db.myuser.find(); #显示myuser表中所有数据

实际情况

> show dbs;
admin      0.000GB
config     0.000GB
local      0.000GB
shijiange  0.000GB
> use shijiange
switched to db shijiange
> show tables;
myuser
> db.myuser.find()
{ "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 }
{ "_id" : ObjectId("6109e562b3da451c7b659eb4"), "name" : "shijiange2", "age" : 30 }
{ "_id" : ObjectId("6109e567b3da451c7b659eb5"), "name" : "shijiange3", "age" : 40 }
{ "_id" : ObjectId("6109e56cb3da451c7b659eb6"), "name" : "shijiange4", "age" : 50 }
{ "_id" : ObjectId("6109e57cb3da451c7b659eb7"), "name" : "zhangsan4", "age" : 50 }
{ "_id" : ObjectId("6109e580b3da451c7b659eb8"), "name" : "zhangsan3", "age" : 50 }
{ "_id" : ObjectId("6109e58ab3da451c7b659eb9"), "name" : "zhangsan2", "age" : 40 }
{ "_id" : ObjectId("6109e58fb3da451c7b659eba"), "name" : "zhangsan1", "age" : 20 }

MongoDB集合的多种查询方式

pretty易读的方式

>db.myuser.find().pretty()

{
"_id" : ObjectId("6109e55db3da451c7b659eb3"),
"name" : "shijiange1",
"age" : 20
}
{
"_id" : ObjectId("6109e562b3da451c7b659eb4"),
"name" : "shijiange2",
"age" : 30
}
{
"_id" : ObjectId("6109e567b3da451c7b659eb5"),
"name" : "shijiange3",
"age" : 40
}

和mysql一样的limit查询,可以利用skip来分页查询

> db.myuser.find().limit(2)

{ "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 }
{ "_id" : ObjectId("6109e562b3da451c7b659eb4"), "name" : "shijiange2", "age" : 30 }

MongoDB进行排序

> db.myuser.find().sort({age:1})

{ "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 }
{ "_id" : ObjectId("6109e58fb3da451c7b659eba"), "name" : "zhangsan1", "age" : 20 }
{ "_id" : ObjectId("6109e562b3da451c7b659eb4"), "name" : "shijiange2", "age" : 30 }
{ "_id" : ObjectId("6109e567b3da451c7b659eb5"), "name" : "shijiange3", "age" : 40 }
{ "_id" : ObjectId("6109e58ab3da451c7b659eb9"), "name" : "zhangsan2", "age" : 40 }
{ "_id" : ObjectId("6109e56cb3da451c7b659eb6"), "name" : "shijiange4", "age" : 50 }
{ "_id" : ObjectId("6109e57cb3da451c7b659eb7"), "name" : "zhangsan4", "age" : 50 }
{ "_id" : ObjectId("6109e580b3da451c7b659eb8"), "name" : "zhangsan3", "age" : 50 }

根据字段进行数字比较查询

$gt #大于 greatest 方便记忆 $lt #小于 lowest $gte #大于或等于 greatest equal $lte #小于或等于  lowest equal $ne : !=、<> $in : in $nin: not in $all: all  $not: 反匹配(1.3.3及以上版本)

查询小于30的

> db.myuser.find({"age":{$lt:30}}) { "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 } { "_id" : ObjectId("6109e58fb3da451c7b659eba"), "name" : "zhangsan1", "age" : 20 }

多种查询条件之查询姓名为shijiange1的

> db.myuser.find({name:'shijiange1'}) { "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 }

or查询两条数据

> db.myuser.find({$or:[{name:'shijiange1'},{name:'shijiange2'}]}) { "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 } { "_id" : ObjectId("6109e562b3da451c7b659eb4"), "name" : "shijiange2", "age" : 30 }

and查询两个同时满足的条件

> db.myuser.find({$and:[{name:'shijiange1'},{age:20}]}) { "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 }

MongoDB普通正则和扩展正则查询

限制主键为name的数据shijiange[0-9]

> db.myuser.find({"name":{$regex:"shijiange[0-9]"}}) { "_id" : ObjectId("6109e55db3da451c7b659eb3"), "name" : "shijiange1", "age" : 20 } { "_id" : ObjectId("6109e562b3da451c7b659eb4"), "name" : "shijiange2", "age" : 30 } { "_id" : ObjectId("6109e567b3da451c7b659eb5"), "name" : "shijiange3", "age" : 40 } { "_id" : ObjectId("6109e56cb3da451c7b659eb6"), "name" : "shijiange4", "age" : 50 }

匹配姓名中包含zhangsan的数据

> db.myuser.find({"name":{$regex:"(zhangsan)"}}) { "_id" : ObjectId("6109e57cb3da451c7b659eb7"), "name" : "zhangsan4", "age" : 50 } { "_id" : ObjectId("6109e580b3da451c7b659eb8"), "name" : "zhangsan3", "age" : 50 } { "_id" : ObjectId("6109e58ab3da451c7b659eb9"), "name" : "zhangsan2", "age" : 40 } { "_id" : ObjectId("6109e58fb3da451c7b659eba"), "name" : "zhangsan1", "age" : 20 }

利用for循环查询100条测试数据

> for(i=1; i<=100; i++){  ...  db.myuser.insert({name:'mytest'+i, age:i}) ... } WriteResult({ "nInserted" : 1 })

image-20210804094132355

利用count查看当前表中的记录数目

> db.myuser.count() 100 #100条记录

范围查询

查询从2到10之间的数据

> db.myuser.find({"age":{$gte:2,$lte:10}})
{ "_id" : ObjectId("6109f00b92cc83f32e90ec0d"), "name" : "mytest2", "age" : 2 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec0e"), "name" : "mytest3", "age" : 3 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec0f"), "name" : "mytest4", "age" : 4 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec10"), "name" : "mytest5", "age" : 5 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec11"), "name" : "mytest6", "age" : 6 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec12"), "name" : "mytest7", "age" : 7 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec13"), "name" : "mytest8", "age" : 8 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec14"), "name" : "mytest9", "age" : 9 }
{ "_id" : ObjectId("6109f00b92cc83f32e90ec15"), "name" : "mytest10", "age" : 10 }


我的个人博客

孤桜懶契:http://gylq.github.io



[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2021-8-5 13:43 被孤桜懶契编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2105
活跃值: (3597)
能力值: ( LV6,RANK:81 )
在线值:
发帖
回帖
粉丝
2
好家伙,我直接收藏
2021-8-5 14:31
0
游客
登录 | 注册 方可回帖
返回
//