MongoDB简明手册

官方文档链接

一、简介

  • MongoDB是为快速开发互联网Web应用而设计的数据库系统
  • 其设计目标是极简、灵活、成为Web应用栈的一部分
  • 其数据模型是面向文档的,所谓文档即是一种类型于JSON的数据结构,可以把MongoDB数据库理解为存储各种各样的JSON文件。(专用结构:BSON,Binary JSON)
  • MongoDB的版本规则(x.y.z):y偶数表示稳定版,奇数表示开发版
  • MongoDB已不再支持32位系统(i386),且对平台兼容性要求复杂,官方解释

二、核心概念

  • 数据库database
    • 理解为仓库,仓库里可以存放集合
  • 集合collection
    • 集合类似于数据,在集合里可以存储文档
  • 文档document
    • MongoDB的最小单位,存储和操作的对象都是文档
  • 概念对比sss- BSON数据类型参考:bb

三、基本操作

  • 基本指令
    • show dbs:显示当前所有数据库
    • use dbname:进入到指定数据库中操作(不存在则自动创建,惰性加载的存储机制)
    • db:显示当前所在的数据库
    • show collections:显示数据库中所有的集合
  • CRUD指令
    • 插入文档
      • 单个插入语法:db.[collection].insert({})
      • 批量插入语法:db.[collection].insertMany([{}, …])
    • 查询文档
      • 查询全部:db.[collection].find()
      • 查询第一条:db.[collection].findOne()
      • 投影查询:db.[collection].find({query}, {field})
    • 修改文档
      • 语法:db.[collection].update({query}, {update}, {options})
      • 覆盖修改:db.[collection].update({query}, {})
      • 局部修改:db.[collection].update({query}, {$set:{}}),默认只修改第一条数据
      • 批量修改:db.[collection].update({query}, {$set:{}}, {multi:true})
      • 列值自增:db.[collection].update({query}, {$inc:{field:NumberInt(步进值)}})
    • 删除文档
      • 语法:db.[collection].remove({query})
      • 删除全部:db.[collection].remove({})
  • 文档间的关系通过内嵌文档的形式体现
    • 一对一 one to one
    • 一对多 one to many / 多对一 many to one
    • 多对多 many to many

四、高级操作

  1. 分页查询
  • 统计查询,count()
    • 语法:db.[collection].count(query, options)
  • 分页列表查询,limit()和skip()
    • 语法:db.[collection].find().limit(num).skip(num)
  • 排序查询,sort()
    • 语法:db.[collection].find().sort({升序1,降序-1})
  1. 模糊查询,正则的复杂条件查询
    语法:db.[collection].find({field:/正则表达式/})
  2. 比较查询
    大于:db.[collection].find({field: {$gt: value}})
    小于:db.[collection].find({field: {$lt: value}})
    大于等于:db.[collection].find({field: {$gte: value}})
    小于等于:db.[collection].find({field: {$lte: value}})
    不等于:db.[collection].find({field: {$ne: value}})
  3. 包含查询
    包含:db.[collection].find({field: {$in: [value,…]}})
    不包含:db.[collection].find({field: {$nin: [value,…]}})
  4. 条件连接查询
    逻辑与:db.[collection].find({$and: [{…}, {…}, …]})
    逻辑或:db.[collection].find({$or: [{…}, {…}, …]})

五、索引

索引支持着MongoDB的高效查询。如果没有索引,MongoDB必须进行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档,这种方式的查询效率是极其低下的。如果查询存在适当的索引,MongoDB可以使用它限制必须检查的文档数。官方解释

索引是一种特殊的数据结构,以易于遍历的形式存储集合数据集的一小部分。索引存储特定的字段或一组字段的值,按字段值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。另外,MongoDB还可以使用索引中的排序返回排序结果。

  1. 单字段索引 Single Field Index
    在文档的单个字段上创建用户定义的升序/降序索引。
  2. 复合索引 Compound Index
    多个字段的用户定义索引,即复合索引。复合索引中列出的字段顺序具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值