ITPub博客

首页 > Linux操作系统 > Linux操作系统 > mongodb 学习笔记-概念

mongodb 学习笔记-概念

原创 Linux操作系统 作者:zghover_cu 时间:2012-03-25 09:58:21 0 删除 编辑
mongodb 学习笔记-概念

1,mongodb中的文档(document)
.文档是mongodb的核心概念,多个键及其关联的值有序的放置在一起就是文档。例如:
文档1:
{"name1": "test", "age": 80, "address": "bj"}
文档2:
{"name1": "test", "address": "bj",  "age": 80}
.文档的键/值对是有序的,文档1和文档2的是两个不同的文档
.从例子中可以看出,文档中键的值的类型可以不同,这个想python中的字典
.文档中的键的要求
(1)文档中的键必须是字符串,除了少数例外情况,键值可以使用任意的UTF-8字符
(2)键中不能含有\0和.还有$和_这些字符
(3)键的字符串,区分大小写
(4)键不能重复

2,集合
.集合是一组文档的组合,可以把文档看成关系数据库中的行,把集合看成是表。
.集合是无模式的,也就是说集合中可以有各式各样的文档:
{“name1”: "test"}
{"age": 80}
.在一个集合中放置各种各样的文档,会造成很多查询浪费,而且分析起来也不方便。
.最好是把同种类型的文档放在一个集合中,方便创建索引,和其他的管理操作;
.集合的命名
.集合的命名中不能是空字符串,不能含有\0,不能以system.开头,不能含有$字符;
.子集合可和可以通过,集合.子集合 这样的方式来引用;
.一个集合可以包含多个子集合;

3, 数据库
.多个文档组成集合,多个集合组成数据库;
.数据库也可以通过名字来标记:但必须满足以下条件,数据库名最终会变成系统中的文件
(1)不能空字符串,不得含有‘’.$\/和\0等字符
(2)应该全部小写
(3)最多64字节

.有些数据库是保留的,包括:
admin, local, config

4,启动和使用mongoDB
.安装好mongodb后,默认的数据目录是/data/db,该目录可以通过--dbpath参数来指定,默认端口是27017
../mongod 来启动数据库

. mongoDB shell
. 启动mongoDB shell
  ./mongo
. mongoDB是用javascript写的,所以可以使用javascript的函数

.shell中的基本操作
>use foobar
>db

(1)创建
定义一个对象:
>post={"title":"hello world", "data": new Date()}
插入对象:
>db.blog.insert(post)
查看一下:
>db.blog.find()

(2)读取
find()会返回集合里所有的文档,findOne()方法会返回想查看的一个文档

(3)删除
>db.blog.remove({"title":"hello world"})

(4)更新
> post = {"name" : "testmongo", "age": 20}
{ "name" : "testmongo", "age" : 20 }
> db.blog.insert(post)
> db.blog.find()
{ "_id" : ObjectId("4f6e7a0e1dffe42de82704f8"), "name" : "testmongo", "age" : 20 }
> post.age=80
80
> db.blog.update({"name":"testmongo"}, post)
> db.blog.find()                           
{ "_id" : ObjectId("4f6e7a0e1dffe42de82704f8"), "name" : "testmongo", "age" : 80 }

 

5 数据类型

5.1 基本数据类型

mongodb的支持的数据类型和mongodb shell支持的数据类型不同,mongodb shell支持的数据类型要少一些。

.null
    表示空值或是不存在的字段
{"data": null}
.布尔
    布尔值有两个: true 和 false
.32位整形
    此类型在shell中不可用。
.64位整形
    shell不支持.
.64位浮点数
    shell中支持这种类型,而不支持整数类型,所以:
    {"x": 3.14}是浮点型
    {"x": 3}  保存后也会转换成浮点型
.字符串
    {"str": "hello"}
.符号
    shell中不支持符号类型,它会把数据库中的符号转换成字符串
.对象id
    对象id是文档的12直接的唯一ID
.正则表达式
    文档中可以包含正则表达式
    {"x": /foobar/i}
.代码
    文档中可以包含javascript代码
    {"x": function()}
.二进制数
    二进制数可以由任意的字节组成,但shell中不支持。
.最大值和最小值
    shell中不支持
.未定义
.数组
    值的集合或者列表可以表示成数组
    {"x": ["a", "b", "c"]}
.内嵌文档
    文档中可以包含文档
    {"x": {"boo": "bar"}}

5.2 关于数据类型的说明
. 关于数字

 

待续......

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20498361/viewspace-719454/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-03-25

  • 博文量
    12
  • 访问量
    58234