基本概念
1、文档,类似于关系型数据库的行,存储数据的基本单元;
2、集合,类似于关系型数据库的表,用于存储文档;
3、单个实例可以容纳多个独立的数据库,且每个数据库都有自己的集合和权限;
4、支持类似于JSON的BSON。
文档
1、文档类似于Python的字典、JS的对象,每个文档以:{“key1”:value1, “key2”:value2…}的形式给出;
2、文档中的键值对不似Python的字典,MongoDB的文档中的键值对是有序的;
3、文档的键是字符串,除少数情况外,可以任意使用UTF-8的字符;
4、文档的保留字:"."、"$“且键的结尾不能为”",以"_"开头的键软保留;
5、文档的键不可重复;
6、MongoDB区分类型与大小写,如
{“foo” : 3}、{“foo” : “3”}和{“Foo” : 3}均不同;
集合的命名
1、集合不能为空字符串—"";
2、集合名不能以“system.”开头,“system"是系统保留的前缀,如system.users中存放所有的用户数据;
3、集合中不能包含”$"。
数据库命名
1、不可包含空格、"."、"$"、""、"/";
2、应当全部为小写;
3、最多64字节;
4、保留数据库名:
1)、admin:"root"数据库,若将某用户添加到此数据库中则此用户继承所有数据库权限。如列出数据库和关闭服务器等一些特殊的命令只能从此数据库中与运行;
2)、local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合;
3)、config:在Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
集合的完全限定名—命名空间
形式:数据库名.集合名[.子集合名]
集合的子集合
形式:集合.子集合
MongoDB的启动
前提:
1、已为MongoDB配置数据存储目录,Windows下默认为"C:\data\db"
2、27017端口未被占用且可对外通信(对外连接的话)
基本命令
1、db — 显示数据库名
2、use 数据库名 — 切换数据库,若数据库不存在则会创建数据库(在创建文档时才会自动创建)
3、db.collection — 访问数据库的集合
MongoDB的增删改查
增加:
查询:
db.collection.find() — 查询collection中所有符合要求的文档
db.collection.findOne() — 查询collection中第一个符合要求的文档
更新:
下面对post文档添加一个新键,并使用update()将原文档替换为新文档
删除:
db.collection.remove() — 删除集合中符合条件的文档,筛选条件为必填项