1_MongoDB基本概念

MongoDB学习

一.入门

  1. 行(row) ->文档(document);
  2. 表(table) -> 集合(collection);
  3. 一个MongoDB实例可以容纳多个独立的数据库,每一个都有自己的集合和权限;
  4. 每一个document都有自己的_id,它在document所处的collection是唯一的。
1. 文档(document)
  1. document中的键值对是有序的;
  2. document中的值(value)可以由很多类型,字符串,数字,一个另外的文档……
  3. document中的键(key)中:
    • 不能有空字符;
    • “.”和”$”有特殊的作用;
    • 以”_”开头的键是保留的
  4. MongoDB区分类型和大小写;

    // 不同
    {"foo": 3}
    {"foo: "3"}
    // 也不同
    {"foo": 3}
    {"Foo": 3}
  5. MongoDB 不能有重复的键


2. 集合(collection)
  1. 无模式:一个集合里的文档可以是各式各样的。

    // 以下两个document可以存在在一个collection中,称为**无模式**
    {"greeting": "Hello World"}
    {"foo": 5}

    但我们最后还在在一个collection中存放一类的数据

  2. 命名:

    • 不能是”“(空字符串)
    • 不能有空格
    • 不能以system.开头,比如system.usersystem.namespaces
    • 不能有保留字符”$”
  3. 使用子集合:比如一个博客功能的应用可以有blog.authorsblog.posts,blog这个集合和它的两个子集合没有什么关系。


3. 数据库(db)
  1. 一个数据库可以有多个集合,应该将一个应用的所有数据存在一个数据库上
  2. 数据库名最后会变成文件系统里的文件名,因此

    • 不能是空串
    • 不应有空格和其他转义
    • 全部小写
    • 最多64字节
  3. 保留的数据库名

    • admin
    • local
    • config

4.启动Mongo

$ ./mongod

在没有参数的情况下会使用默认数据目录:/data/db并使用27017端口,在创建之前,如果数据目录不存在或不可写则创建失败。mkdir -p /db/data

如果端口被占用,则通常是已经启动了MongoDB实例。

可以用过http://localhost:28017来访问数据库的管理信息。


5. MongoDB shell

shell中的基本操作:增删改查操作


6. 数据类型

MongoDB的数据类型扩展了JSON的6种类型:null,数字,字符串,布尔,数组和对象

  1. JSON中没有日期类型;
  2. JSON中没有数字类型,不能区分整型和浮点型;
  3. 不能区分常用类型,比如正则表达式和函数

几点注意

  1. js中只有一种数字类型,即64位双精度;默认情况下shell中的数字都被都被MongoDB当做双精度数。也就是说,如果我们从数据库中得到一个32位整数,修改文档并把文档存回数据库,即便这个整数完全不动,也会被修改为64为浮点数。所以,不要在shell下覆盖整个文档
  2. 日期上,要使用new Date()而不要使用Date(),前者返回一个日期对象,而后者返回一个字符串。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值