mongodb与关系型数据库概念类比
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
tablejoins | 表连接,MongoDB不支持 | |
primary key | _id | 主键,MongoDB自动将_id字段设置为主键 |
文档与记录行的区别
- 文档是无模式的,即第一条记录5个字段,第2条记录可能是2个字段。且字段名称可能完全不一样 RDBMS记录行是预先定义好的格式,必须按照规定格式存储。
- 文档的结构是可以嵌套的
{
item: "ABC1",
details: {
model: "14Q3",
manufacturer: "XYZ Company"
},
stock: [ { size: "S", qty: 25 }, { size: "M", qty: 50 } ],
category: "clothing"
}
MongoDB数据类型
- MongoDB的文档类似于JSON的格式,与javascript对象神似 Json包含6中数据类型,只有null、布尔、数字、字符串、数组、对象这几种数据类型.JSON中没有日期类型,只有一种数字类型,没办法区分整形和浮点数,不能区分32位和64位。
- MongoDB数据类型 MongoDB保留了JSON的键值特性,添加了一些其他的数据类型。 数据类型 描述 null 用于表示空值获不存在字字段 32位整形,64位整形,64位浮点数 javascript中只有一种数字类型,而MongoDB中有上面3中类型,默认情况下shell的数字都被MongoDB当作双精度。在shell下修改文档中的32位整形,也会被转换为64位浮点数。所以尽量不要在shell下面修改文档 字符串 UTF-8字符串数据 ObjectId MongoDB中存储的文档必须有一个“_id”,这个键可以是任何值,但必须唯一 日期 var d=new Date() 正则表达式 采用javascript的正则表达式语法 函数 可以包含javascript代码,如 {a:function(){……}} 二进制 shell脚本中无法使用,通过其他语言驱动 最大值and最小值 是BSON中的特殊类型分别表示可能的最大最小值,int.MaxValue, int.MinValue 未定义 undefined,在javascript中null和undefined是不同的类型 数组 值的集合表示为数组。同json数组一样,数组是一组值,数组中可以包含不同的数据类型的对象,甚至是嵌套数组 内嵌文档 内嵌文档就是把整个MongoDB文档当作另一个文档中键的值。
CRUD基础操作
代码语言:javascript复制>use foo #新建数据库,如果只执行这条命令而不插入数据,则不会建立成功#
>db #显示当前使用的数据库#
>db.fooCollection.insert({name:"luonanqin"}); #fooCollection为collection的名字,insert表示插入操作#
>show collections #显示数据库中所有的集合
>db.fooCollection.find(); #查询fooCollection中所有的数据#
{ "_id" : ObjectId("51bd9b84f5a86f460f74659a"), "name" : "luonanqin" }
>db.abc.update({"_id" : ObjectId("51bd9b84f5a86f460f74659a")},{$set: {name:"luonanqin2"}}); #更新name的值为luonanqin2#
>db.abc.remove({name:"luonanqin2"});
>show collections #显示数据库中所有的集合
>db.abc.drop() #drop数据库
>db.help()
喜欢 (1)or分享 (0)