mongodb

mongodb

定义

  • 非关系型数据库(没有特定的表结构),采用BSON存储文档数据
  • BSON( Binary Serialized Document Format)
  • 采用c++编写

优点

  • 面向文档存储,以json格式的文档存储数据
  • 扩展性好(可以后续添加字段)
  • 自动分片
  • 查询功能丰富
  • 即时更新

基本概念

字段

字段(field)对应列(column)

文档

数据库的基本单元,类似于关系型数据库的行

集合

一组文档,类似于关系型数据库中的表

数据库

每个数据库都有自己的集合和权限

ObjectID

时间戳(4字节,记录文档创建时间)+客户端ID(3字节,用来标识不同客户端)+客户端进程ID(2字节,用来区分不同进程创建的ObjectID)+自增字段(3字节,确保同一秒产生的ObjectID的唯一性)。
相当于数据库中的主键

命令行工具

javascriptshell

数据类型

null

表示空值或未定义的对象

布尔值

32位整数

shell不支持,默认转为64位浮点数

64位整数

shell不支持,默认转为64位浮点数

64位浮点数

shell使用的数据类型

字符串

utf-8字符串

符号

shell不支持, 自动转为字符串

ObjectID

12个字节

日期

从标准纪元开始的毫秒数

正则表达式

遵循javascript的正则表达式语法

代码

可以包含javascript代码

undefined

数组

值的集合或列表

内嵌文档

最大值

BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。

最小值

BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。

具体使用

切换数据库

use 数据库名称

显示数据库列表

show dbs

插入数据

db.collectionName.insert({“key”:“value”})

更新和插入数据

db.collectionName.save({“key”:“value”})

删除数据库

db.dropDatabase() 删除数据库

创建集合

db.createCollection(“collectionName”)

查看集合

show collections

删除集合

db.CollectionName.drop()

查询文档

find({“key”:“value”}).pretty()

更新文档

update({“key”:“value”}, {‘$set’: {“key”:“value”}})

删除文档

remove({“key”:“value”})

查询并对文档进行排序

find({“key”:“value”}) + 旧版.sort({columnName:1}) + 新版.sort([(columnName:1)])

合并查询操作

aggregate() + 筛选 [{$match:key}] + 分组 [{$group:{_id:group_filed_name, dispaly_field_name:{$first:nonkey_name}}}] + 求和