MongoDB基础增删改查命令
目录
前置知识
JSON对象格式
JSON对象数组格式
MongoDB和MySQL类比理解
对数据库增删改查
创建数据库
查看所有数据库
查看当前数据库
删除数据库
对集合进行增删改查
创建集合
查询集合
删除集合
对集合中的JSON对象进行增删改查
增删改查所需要的操作符概念
查询操作符
逻辑操作符
更新操作符
插入JSON对象
更新JSON对象
删除JSON对象
查询JSON对象
前置知识
JSON对象格式
{"key": "value"}
JSON对象数组格式
[{"key1": "value1"},{"key2": "value2"},...]
MongoDB和MySQL类比理解
MongoDB的集合相当于MySQL中的表
MongoDB的JSON对象相当于MySQL中的一行数据
MongoDB的JSON对象数组相当于MySQL中的多行数据
MySQL是需要对表进行创建的,MongoDB中的集合是直接指定,不需要创建
对数据库增删改查
创建数据库
MongoDB数据库不是直接创建的
切换数据库,有了切换过去,没有了自动创建数据库再进行切换
所以我们想要创建数据库就直接切换数据库就可以了
use 数据库名称
查看所有数据库
show dbs
查看当前数据库
db
删除数据库
MongoDB没有删除指定数据库的命令,只有删除当前数据库的命令
所以要删除数据库要分为两步:
#切换到想要删除的数据库
use 数据库名称#执行删除当前数据库的命令
db.dropDatabase()
对集合进行增删改查
创建集合
MongoDB推荐给集合插入数据的时候自动创建
所以集合本质上是不需要使用创建命令创建的,直接向集合插入数据,如果没有这个集合会自动创建的
查询集合
查询当前数据库下的所有集合
#返回值是数组形式
db.getCollectionNames();
删除集合
#删除指定的集合
db.集合名称.drop();
对集合中的JSON对象进行增删改查
首先,我需要澄清一点,这里强调是对集合中的JSON对象进行增删改查是为了便于理解
实际上的 集合中的JSON对象 专业术语是 文档
如果有同志不理解JSON对象、JSON对象数组格式,请看我上面的前置知识部分
增删改查所需要的操作符概念
查询操作符
操作符 | 说明 | 示例 |
---|---|---|
$eq | 等于 | age: { $eq: 25 } |
$ne | 不等于 | age: { $ne: 25 } |
$gt | 大于 | age: { $gt: 25 } |
$lt | 小于 | age: { $lt: 25 } |
$in | 包含在数组中 | name: { $in: ["Alice", "Bob"] } |
$regex | 正则匹配 | name: { $regex: /^A/ } |
逻辑操作符
操作符 | 说明 | 示例 |
---|---|---|
$and | 与 | 显式写法 $and: [{查询操作符1}, {查询操作符2}] (推荐)隐式写法 查询操作符1,查询操作符2 |
$or | 或 | $or: [{查询操作符1}, {查询操作符2}] |
$not | 单个取反 | $not: {查询操作符} |
$nor | 多个取反 | $nor: [{查询操作符1}, {查询操作符2}] |
如果and和or都出现的情况下,推荐使用隐式and和显式or搭配使用,清晰明了
更新操作符
操作符 | 说明 | 示例 |
---|---|---|
$set | 设置字段 | $set: { age: 26 } |
$unset | 删除字段 | $unset: { city: 1 } |
$inc | 递增数字 | $inc: { age: 1 } |
$push | 向数组添加元素 | $push: { hobbies: "reading" } |
$pull | 从数组删除元素 | $pull: { hobbies: "gaming" } |
插入JSON对象
#对指定集合插入单个JOSN对象
db.集合名称.insertOne(JSON对象);#对指定集合插入多个JSON对象
db.集合名称.insertMany(JSON对象数组);
更新JSON对象
#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#对指定的集合进行单个JSON对象的更改
db.集合名称.updateOne({查询条件},{一个或多个更新操作符});#对指定集合进行多个JSON对象的更改
db.集合名称.updateMany({查询条件},{一个或多个更新操作符});#对指定集合中的指定行进行JSON对象的替换,就是所有数据都改变但是id不变
db.集合名称.replaceOne({查询条件},JSON对象);
删除JSON对象
#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#删除单个JSON对象
db.集合名称.deleteOne({查询条件});#删除多个JSON对象
db.集合名称.deleteMany({查询条件});
查询JSON对象
#这里的查询条件是逻辑操作符号和查询操作符号的嵌套,就是指查询条件
#查询所有匹配的JSON对象
db.集合名称.find({查询条件});#查询单个匹配的JSON对象
db.集合名称.findOne({查询条件});