MongoDB数据库使用详细教程

登录数据库
mongosh   

指定用户密码登录

mongosh --username aishu --password P@ssword123 --authenticationDatabase  

创建数据库并使用该数据库

use CRM

查看当前使用的数据库

db  

查看所有数据库

show dbs 

创建拥有root权限的超级用户

db.createUser({ user: 'aishu', pwd: 'P@ssword123', roles: ['root'] })   

创建并使用test表

db.test 

显示表

show collections  

删除当前选定的数据库

db.dropDatabase(); 

删除表

db.collection_name.drop() 

插入一条数据,官方推荐

db.course.insertOne({"name":"linux","price":1070})    

插入多条数据,无需参数控制,官方推荐

db.test.insertMany([{"name":"java","price":1080},{"name":"python","price":1000}])

无条件查询:将该表中所有的数据一次性返回

db.test.find()  find()

条件查找:price等于1070的数据,这里会返回多条结果

db.test.find({"price":1070}) 

根据条件修改一条数据的内容,如果出现多条,只修改最靠前的一条数据

db.test.updateOne({"price":1070},{$set:{"name":"hello world"}})  

根据条件修改所有数据的内容,多条修改

db.test.updateMany({"price":1070},{$set:{"name":"Go"}})  

删除数据
MongoDB提供了三个用于删除的API,分别是:

db.test.remove()  不推荐

db.test.deleteOne()  推荐

db.test.deleteMany()  推荐

 db.test.deleteMany({"name":"Go"})

MongoDB的数据类型
objectID : Documents自生产成的_id
“_id” : ObjectId(“5b151f8536409809ab2e6b26”)
“5b151f85” 代指的是时间戳,这条数据的产生时间
“3640998” 代指某台机器的机器码,存储这条数据的机器标号
“09ab” 代指进程ID,多进程存储数据的时候,非常有用
“2e6b26” 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
以上四种标识符拼凑成世界上唯一的ObjectId
只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectId进行转换
可以得到以上四重信息

注意:这个类型是不可以被json序列化的

常见的$关键字
(等于)
在MongoDB中什么字段等于什么值其实就是":“来搞定, 比如"name”:“linux”
> db.course.find({"name":"linux"})
{ "_id" : ObjectId("5c3f10265591b5b80202c90a"), "name" : "linux", "score" : 100 }

$in
查询一个键的多个值

> db.course.find({"name":{$in:["linux","Go"]}})
{ "_id" : ObjectId("5c3f10265591b5b80202c90a"), "name" : "linux", "score" : 100 }
{ "_id" : ObjectId("5c3f10265591b5b80202c90b"), "name" : "Go", "score" : 80 }

o r 满足任意 or 满足任意 or满足任意or条件的数据,至少要满足一个

> db.course.find({$or:[{"score":100},{"score":80}]})
{ "_id" : ObjectId("5c3f10265591b5b80202c90a"), "name" : "linux", "score" : 100 }
{ "_id" : ObjectId("5c3f10265591b5b80202c90b"), "name" : "Go", "score" : 80 }

g e ( 大于 ) 在 M o n g o D B 中大于 > 号我们用 : ge(大于) 在MongoDB中大于 >号我们用 : ge(大于)MongoDB中大于>号我们用:gt 比如:“score”:{$gt:80}就是得到"score"大于80的数据

> db.course.find({"score":{$gt:70}})
{ "_id" : ObjectId("5c3f10265591b5b80202c90a"), "name" : "linux", "score" : 100 }
{ "_id" : ObjectId("5c3f10265591b5b80202c90b"), "name" : "Go", "score" : 80 }

KaTeX parse error: Expected '}', got 'EOF' at end of input: …号我们用: "score":{lt:80} 就是得到"score"小于80 的数据

> db.course.find({"score":{$lt:80}})
{ "_id" : ObjectId("5c3f10265591b5b80202c909"), "name" : "python", "score" : 59 }

$gte (大于等于)
大于等于 : 在MongoDB中的 大于等于 >= 号 我们用 : $gte 比如 : “score” : { $gte : 80 } 就是 得到 “score” 大于等于 80 的数据

> db.course.find({"score":{$gte:80}})
{ "_id" : ObjectId("5b98f5b3430c27444ccdd64b"), "name" : "Python", "score" : 100 }
{ "_id" : ObjectId("5b98f5b3430c27444ccdd64c"), "name" : "Go", "score" : 80 }

$lte(小于等于)
小于等于 : 在MongoDB中的 小于等于 <= 号 我们用 : $lte 比如 : “score” : { $lte : 80 } 就是 得到"score"小于等于80的数据

> db.course.find({"score":{$lte:80}})
{ "_id" : ObjectId("5b98f5b3430c27444ccdd64a"), "name" : "Linux", "score" : 59 }
{ "_id" : ObjectId("5b98f5b3430c27444ccdd64c"), "name" : "Go", "score" : 80 }
  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值