MongoDB初学笔记(1)


学习目标

  • 理解MongoDb的特点和体系结构
  • 掌握常用的MongoDB命令

MongoDB是一种介于关系数据库和非关系数据库中的一种数据库.它支持的数据结构非常松散,类似于JSON的BJSOn格式,所以可以存储比较复杂的数据类型。

MongoDB特点

  • 面向集合存储,易于存储对象类型的数据
  • 模式自由
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 支持复制和故障恢复
  • 使用高效的二进制数据存储,包含大型对象(如视频等)
  • 自动处理碎片,以支持云计算的扩展性
  • 支持java,python,php等
  • 文件存储格式为BSON(一种JSON的扩展)

MongoDB的体系结构

主要由文档(document)、集合(collection)、数据库(database)这三部分组成的

  1. MongoDB 的文档(document),相当于关系数据库中的一行记录。
  2. 多个文档组成一个集合(collection),相当于关系数据库的表。
  3. 多个集合(collection),逻辑上组织在一起,就是数据库(database)。
  4. 一个 MongoDB 实例支持多个数据库(database)

数据类型

基本数据类型

  • null:用于表示空值或者不存在的字段,{“x”:null}
  • 布尔型:布尔类型有两个值true和false,{“x”:true}
  • 数值:shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用
  • NumberInt(4字节符号整数)或NumberLong(8字节符号整数),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
  • 字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}
  • 日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}
  • 北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
  • 正则表达式:查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相同,{“x”:/[abc]/}
  • 数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}
  • 内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}
  • 对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }
  • 二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非utf-字符保存到数据库中,二进制数据是唯一的方式。
  • 代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}

MongoDB安装,自行谷歌或百度

MongoDB常用命令

  • 选择和创建数据库的语法格式 use 数据库名称
  • 插入文档  db.集合名称.insert(数据);
  • 查询集合 db.集合名称.find();
  • 修改文档 db.集合名称.update(条件,修改后的数据),如果想修改单个字段,不改变其他字段使用$set来实现 

    db.spit.update({_id:"2"},{$set:{visits:NumberInt(2000)}})

  • 删除文档 db.集合名称.remove(条件);
  • db.集合名称.count();
  • 模糊查询 /模糊查询字符串  db.集合名称.find({content:/流量/});
  • 如果要查询吐槽内容中以“xx”开头 db.spit.find({content:/^xx/})
  • 大于 小于 不等于 $gt,$lt,$ne
  • 大于等于 小于等于 $gte $lte
  • 包含与不包含 $in db.spit.find({userid:{$in:["1013","1014"]}})
  • 条件连接 $and:[{},{},{}]
  • 列值增长 $inc db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )

 


作者:Fankly,发布于:2018/12/03
原文:https://www.cnblogs.com/fankly/p/10058787.html