mysql 与 MongoDB 逻辑关系对比,关系型数据库中的表和行 ,分别对应 mongodb 数据库中的集合和文档

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数组

库操作

show dbs :查看当前数据库列表
use user :两个含义,一个是创建名为user的数据库,一个是使用该数据库
db :查看当前数据库
db.createCollection('表名') :当前使用的数据库创建表
show collections :展示当前数据库下所有的数据表
db.集合名.drop() :删除数据表(集合),集合长得全部文档和集合相关的索引都会被删除
db.dropDatabase() 删除数据库,数据库相应的文件也会被删除,磁盘空间将被释放

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数组_02

mongodb 默认有两个数据库,分别是存放管理员信息的 admin 数据库,用来做认证,和存放replication相关数据的数据库 local。

表操作(mongodb 中表称为集合)

插入文档

db.集合名.insertOne(<json对象>) :集合中插入一条数据
db.集合名.save(<json对象>) :集合中插入一条数据,与inset 有一定的区别
db.集合名.insertMany([<json对象>,<json对象>,<json对象>,<json对象>]):集合中插入多条数据

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数据库_03


insert 插入数据会默认分配一个id,此时如果在对相同的 id 插入数据时,会报错。 save 更加类似于更新而save方法不会报错,会更新相同的_id所在行数据的信息。

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_04

修改文档

db.表名.update(<查询的条件>,<更新的字段>) 修改一条记录可以用update 也可以用 updateOne

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数据库_05


MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_06

  • 使用 updateOne 表示无论条件匹配多少条记录,始终只更新第一条;
  • 使用 updateMany 表示条件匹配多少条就更新多少条;
  • updateOne/updateMany 方法要求更新条件部分必须具有以下之一,否则将报错:
    MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_07unset
    MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_08pushAll/$pop
    MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_09pullAll
    • $addToSet
db.users.updateOne({_id: 1}, {name: "白龙"})   // 报错

update 更新文档

● $push: 增加一个对象到数组底部
● $pushAll: 增加多个对象到数组底部
● $pop: 从数组底部删除一个对象
● $pull: 如果匹配指定的值,从数组中删除相应的对象
● $pullAll: 如果匹配任意的值,从数据中删除相应的对象
● $addToSet: 如果不存在则增加一个值到数组

删除文档

db.表名.remove(<条件>)

● remove 命令需要配合查询条件使用;
● 匹配查询条件的的文档会被删除;
● 指定一个空文档条件会删除所有文档;

db.users.remove( { _id : 1 } ) // 删除_id 等于1的记录

db.users.remove( { _id : { $lt : 3 } } ) // 删除_id 小于3的记录

db.users.remove( { } ) // 删除所有记录

db.users.remove() //报错

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_10

查询文档 find

• find 是 MongoDB 中查询数据的基本指令,相当于 SQL 中的 SELECT 。
• find 返回的是游标

db.users.find( { “_id” : 1} ) //单条件查询

db.users.find( { “_id” : 2, “name” : “冯佳兴” } ) //多条件and查询

db.users.find( { $and : [ {“name” : “冯佳兴”}, { “sex” : “男” }] } ) // and的另一种形式

db.users.find( { $or: [{"_id" : 2}, {“sex” : “男”}] } ) //多条件or查询

db.users.find( { “name” : /^冯/} ) //按正则表达式查找

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数组_11

查询条件对照表

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数组_12

查询逻辑对照表

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数据库_13


查询逻辑运算符

● $lt: 存在并小于
● $lte: 存在并小于等于
● $gt: 存在并大于
● $gte: 存在并大于等于
● $ne: 不存在或存在但不等于
● $in: 存在并在指定数组中
● $nin: 不存在或不在指定数组中
● $or: 匹配两个或多个条件中的一个
● $and: 匹配全部条件

查询子文档

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_14


查询数组

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数组_15


查询数组中的对象

MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_json对象_16


MongoDBCompass列表模式没有显示集合新增字段 mongodb show dbs_数据库_17


MongoDB 这些基本的增删改查操作你学会了没?如果错误,感谢留言回复!