MongoDB (零) 安装和简单使用

1.安装(Ubuntu)

1.1.安装gnupg

sudo apt-get install gnupg

1.2.获取GPG Key

curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
   --dearmor

1.3.创建本地文件

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

1.4.更新系统

sudo apt-get update

1.5.安装mongodb

sudo apt-get install -y mongodb-org

1.6.启动mongodb

sudo systemctl start mongod
或者重启
sudo systemctl restart mongod
停止命令
sudo systemctl stop mongod

1.7.查询状态

sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2023-04-24 14:32:14 CST; 14s ago
Docs: https://docs.mongodb.org/manual
Main PID: 63530 (mongod)
Memory: 65.3M
CGroup: /system.slice/mongod.service
└─63530 /usr/bin/mongod --config /etc/mongod.conf

4月 24 14:32:14 szx5apln622219 systemd[1]: Started MongoDB Database Server.

1.8.Robo3t 可视化工具

sudo snap install robo3t-snap

2.使用

2.1.登录

mongosh

2.2.数据库

2.2.1.创建数据库

use mydatabase

2.2.2.删除数据库

db.dropDatabase()

删除当前数据库

2.3.创建用户

db.createUser({user:"root",pwd:"root",roles:[{"role":"userAdmin","db":"admin"},{"role":"root","db":"admin"},{"role":"userAdminAnyDatabase","db":"admin"}]})

2.4.集合

2.4.1.创建集合

相当于表
db.createCollection(name, options)
其中options为可选项, 通常不设置, 如:

db.createCollection('reel')

2.4.2.删除集合

db.reel.drop()

3.CURD

3.1.插入数据

db.reel.insertOne({reel_id: 'X0001', name: 'R_1', qty: 100})

db.reel.insertMany([{reel_id: 'X0001', name: 'R_1', qty: 100},{reel_id: 'X0002', name: 'R_2', qty: 50}])

或者insert 方法已经过时

db.reel.insert({reel_id: 'X0001', name: 'R_1', qty: 100})

或者

db.reel.save({reel_id: 'X0001', name: 'R_1', qty: 100})

如果集合reel沒有在2.4创建, 则reel当插入数据之后就会自动创建

3.2.查询

3.2.1.查询所有数据

db.reel.find()

3.3.修改

3.3.1.update(已过时)

db.reel.update({reel_id: "X0001"}, {$set:{name:"RR_1"}},{multi:true})

第一个json, 是查询的条件
第二个json里面$set为需要设置的值, 满足条件的数据将被set为里面的值
第三个json, 有三个参数
upsert: 设置为true的时候, 意思是没有更新的数据,就插入一条, 默认false
multi: 设置为true的时候, 意思是更新多条, 默认false, 只更新找到的第一条
writeConcern:抛出异常的级别

3.3.2.updateOne

db.reel.updateOne({reel_id: "X0001"}, {$set:{name:"RR_1"}})

3.3.3.updateMany

db.reel.updateMany({reel_id: "X0001"}, {$set:{name:"RR_1"}})

3.3.2.save方法

db.reel.save({_id:ObjectId("64462d4c7f025efddf513e66"), reel_id: "X0001"}, {$set:{name:"RR_1"}})

_id 主键存在就更新,不存在就插入

3.4.删除

3.4.1.删除单个文档

db.reel.deleteOne({name:"RR_1"})

3.4.2.删除多个文档

db.reel.deleteMany({name:"RR_1"})

3.4.3.全部删除

db.reel.deleteMany({})

3.4.4.remove删除(不推荐使用)

3.4.4.1.删除单个
db.reel.remove({name:"RR_1"}, true)

或者

db.reel.remove({name:"RR_1"}, 1)
3.4.4.2.删除多个
db.reel.remove({name:"RR_1"})
3.4.4.3.删除所有数据
db.reel.remove({})

3.5. AND / OR / LIKE

3.5.1.AND

db.reel.find({reel_id:"X0001",name:"R_1"})

3.5.2.LIKE

3.5.2.1.like ‘%A%’
db.reel.find({name:/R/})
3.5.2.2.like ‘A%’
db.reel.find({name:/^R/})
3.5.2.3.like ‘%A’
db.reel.find({name:/1$/})

3.5.3.OR

db.reel.find({$or:[{reel_id:"X0001"},{name:"R_1"}]})

3.5.4.AND和OR联合使用

db.reel.find({qty: {$gt:50}, $or: [{reel_id: "X0001"},{name: "R_1"}]})

3.6.符号

3.6.1.等于

db.reel.find({name:'R_1'})

3.6.2.小于

db.reel.find({qty:{$lt:10}})

3.6.3.小于等于

db.reel.find({qty:{$lte:10}})

3.6.4.大于

db.reel.find({qty:{$gt:10}})

3.6.5.大于等于

db.reel.find({qty:{$gte:10}})

3.6.6.不等于

db.reel.find({qty:{$ne:10}})

3.2.7.类型操作符

db.col.find({"title" : {$type : 2}})

或者

db.col.find({"title" : {$type : 'string'}})

类型表

数字值类型
1double
2string
3object
4array
5binary data
6undefined(已废弃)
7object id
8boolean
9date
10null
11Regular Expression
13JavaScript
14Symbol
15JavaScript (with scope)
1632-bit integer
17timestamp
1864-bit integer
255 / -1Min key
127max key

3.7.分页

db.reel.find().limit(10).skip(1)

limit为查询数量, skip为跳过指定数量的数据

3.8.排序

db.reel.find().sort({"qty": -1})

sort里面的key为排序的字段, -1为降序, 1为升序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值