MongoDB 学习笔记

基础知识

安装

Shell 使用

数据库操作

  1. 查看当前指向数据库 db
  2. 查看所有数据库show dbs
  3. 查看所有集合show collections
  4. 切换指向数据库use db名称

支持基本数据类型

CURL

创建

读取

基础命令

查询限定条件

数组限定条件

Where查询限定

​ 在$Where查询中,可以执行任意的 JS 语句

游标

更新

修改器

  1. 创建或修改:db.集合名.update({}, {"$set": {"x.y": ?}}),不存在字段则创建,存在则修改。可修改内嵌文档如x.y
  2. 自增字段:db.集合名.update({}, {"$inc": {"x": n}}),原子性修改字段 x 自增 n
  3. 数组操作
    1. 插入元素:db.集合名.update({}, {"$push": {"x": ?}}),不存在则创建且插入,存在则像数组末尾插入元素
    2. 删除元素
      • 删除指定位置元素:{"$pop": {"key": 1}},正数从尾部删除、负数从头部删除
      • 删除指定值元素:{"$pull": {?, ?}},删除匹配值的所以元素
    3. 定位操作符:db.集合名.update({"x": ?}, {"$inc": {"x.$.y": ?}}),此时$代表查询到的第一条记录下标,查询条件必须包含定位字段
    4. 子操作符
      • 遍历:db.集合名.update({}, {"$push": {"x": { "$each": [?, ?, ?]}}}),遍历数组内容插入数组内
      • 限制个数:db.集合名.update({}, {"$push": {"x": { "$each": [?, ?, ?], "$slice": -10}}}),slice 值必须为负整数,限制文档字段的数组元素个数
      • 排序:db.集合名.update({}, {"$push": {"x": { "$each": [?, ?, ?], "$sort": {"y": -1}}}}}),按照 y 字段排序,并插入
  4. 不存在查询:db.集合名.update({"x": {"$ne": ?}}, {}),查询 x 不存在 ? 的文档,并修改
  5. 不存在插入(避免重复值):db.集合名.update({},{"$addToSet": {"$each": []}}),遍历不存在则插入

修改器效率

删除

索引