博主自主知识产权《springboot深入浅出系列课程》(16章97节文档) 已经上线,请关注

MongoDB入门

mongodb 字母哥 2219℃ 0评论

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基础操作


>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()

转载请注明:字母哥博客 » MongoDB入门

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址