当前位置: 首页 > news >正文

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为升序

http://www.lryc.cn/news/62998.html

相关文章:

  • Java中的异常是什么?
  • 微短剧“小阳春”,“爱优腾芒”抢滩登陆?
  • C++菱形继承(再剖析)
  • java获取星期几
  • 【TypeScript】03-TypeScript基本类型
  • 什么是跨域?
  • Gradle理论与实践—Gradle构建脚本基础
  • 【Vue 基础】vue-cli初始化项目及相关说明
  • 【c语言】详解c语言#预处理期过程 | 宏定义前言
  • 内网远程控制软件哪个好用
  • 【计算机基本原理-数据结构】数据结构中树的详解
  • 数字设计小思 - D触发器与死缠烂打的亚稳态
  • Notes/Domino 11.0.1FP7以及在NAS上安装Domino等
  • 【VM服务管家】VM4.x算子SDK开发_3.3 模块工具类
  • Aspose.Pdf使用教程:在PDF文件中添加水印
  • H.264/AVC加密----选择加密
  • WuThreat身份安全云-TVD每日漏洞情报-2023-04-26
  • 剑指 Offer第二版:1~n 整数中 1 出现的次数、51. 数组中的逆序对、56 - II. 数组中数字出现的次数 II
  • 云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)
  • 他工作10年,老板却让他走人
  • vpp怎么写node
  • 【4. ROS的主要通讯方式:Topic话题与Message消息】
  • 【react全家桶学习】react中组件定义及state属性(超详/必看)
  • 如何以产品经理思维打造一所高品质学校?
  • 根治Spring中使用Mongo时报错InvalidMongoDbApiUsageException
  • 【计算机组成原理】数据的表示和运算·进位计数制
  • C++ Primer第五版_第十四章习题答案(21~30)
  • 服务器性能调优
  • 带你深入学习k8s--(三) pod 管理
  • 前端系列11集-ES6 知识总结