MongoDB数据库基础

1 篇文章 0 订阅
1 篇文章 0 订阅

MongoDB 是一个开源的、面向文档的 NoSQL 数据库,它采用 JSON 风格的文档存储数据,而不是传统的行和列的存储方式。

基本概念
  • 数据库(Database):集合的容器,相当于关系型DB(SQL)中的数据库
  • 集合(Collection):数据库中的一组文档,相当于SQL中的表
  • 文档(Document):集合中的一条记录,相当于SQL的表中的一行。不同的文档直接不必有相同的结构,这一点是和SQL不同的
  • 字段(Field):文档中的键值对,相当于SQL中的列。比较重要的区别是MongoDB中的一个field可以是一个JSON对象或者数值
包管理器安装
  1. Windows

    • $ choco install mongodb -y
  2. Linux

  • #Redhat
    • $ sudo yum install -y mongodb-org
  • #Ubuntu & Debian & SUSE
    • $ sudo apt-get update
    • $ sudo apt-get install -y mongodb-org
  • #Fedora
    • $ sudo dnf install mongodb-org
  1. Mac
  • 安装
    • brew tap mongodb/brew
    • brew install mongodb-community
  • 启动
    • brew services start mongodb-community
基本命令
  • mongosh:打开一个连接到本地实例的MongoShell,所有其他命令都需要在mongosh中执行
  • show databases(show dbs):显示当前MongoDB实例中的所有数据库
  • use <dbname>:切换到数据库<dbname>
  • db:显示当前使用中的数据库名称
  • cls:清屏
  • show collections:显示当前数据库中的所有集合
  • db.dropDatabase():删除当前的数据库
  • exit:退出mongosh会话
创建/插入
  • insertOne:在集合中插入一个新的文档。如:dbname.insertOne({name:“laoshi”})
  • insertMany:在集合中插入多个新的文档。如:dbname.insertMany({name:“zhangsan”},{name:“lisi”})
查找
  • find:查询所有的文档。如:dbname.find()
  • find(<filterObject>):查询所有满足参数对象<filterObject>中指定过滤条件的数据。如:dbname.find({name:“laoshi”})
  • db.find(<filterObject>,<selectObject>):查询所有满足参数对象<filterObject>中指定过滤条件的数据,并且只返回<selectObject>中指定的字段。如:dbname.find({name:“laoshi”}{name:1,email:1})
  • findOne:与find用法相同,找到满足过滤条件的对象,但还是只返回第一条。如:dbname.findOne({level:1})
  • countDocuments:返回满足条件的记录的数量
  • sort:使用给定的字段按照升序或者降序来排序
  • limit:限定只返回给定数量的文档
  • skip:从头开始跳过给定数值的文档
更新
  • updataOne:更新满足条件的第一个文档
  • updateMany:更新满足条件的所有文档
  • replaceOne:替换满足条件的第一个文档
  • save:通过传入的文档替换已有或插入一个新的文档
  • $set:只更新文档中$set指定的字段,不会影响其他字段
  • $inc:用于递增(或递减)文档中指定字段值的操作符
  • $rename:更新某个字段的名称
  • $unset:删除一个字段
  • $push:将值加入一个数组中,不会判断是否有重复的值
  • $pull:将值从一个数值中移除
  • $addToSet:将值加入一个数组中,会判断是否有重复的值,若重复则不加入
删除
  • deleteOne:删除满足条件的第一个文档
  • deleteMany:删除满足条件的所有文档
过滤条件
  • $eq:等于(equal)
  • $ne:不等于(not equal)
  • `$gt/$gte:大于(greater than)/大于等于(greater than or equal)
  • $lt/\$lte:小于(less than)/小于等于(less than or equal)
  • $in:值在指定值列表中,就返回该文档
  • $nin:值不等于指定值列表中的任何一个,就返回该文档
  • $and:检查复数条件是否均为真,可以理解为“并且”
  • $or:检查复数条件中是否有一个为真,可以理解为“或者”
  • $not:将$not里面的过滤条件取反
  • $exists:检查一个字段是否存在
  • $expr:在不同的字段之间作比较
聚合
  • 聚合主要用于处理数据,并返回计算后的结果,比如求和、平均值等
  • $sum:计算总和
  • $avg:计算平均值
  • $min:获取最小值
  • $max:获取最大值
  • $push:将值加入一个数值中,不会判断是否有重复的值
  • $first:获取第一个文档数据
  • $last:获取最后一个文档数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懵逼树下的懵逼果

谢谢谢谢谢,好人一生平安

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值