mongodb学习笔记----一

1,mongodb使用MongoDB传输协议做为和服务器交互的主要方式,与之对应的协议http/rest须要更多的开销 mongodb

2,mongodb区分类型,区分大小写。 shell

3,文档:多个键及其关联的值有序的放在一块儿即是文档。{"greet":"hello world"};{"greet":"helloworld","bad":"hello world"}至关于关系行数据库中的行,文档中的键/值对是有序的,上面的文档和下面的文档是彻底不一样的。 数据库

4,集合:就是一组文档,若是文档至关于关系行至关于关系型数据库中的行,那么集合就至关于关系型数据库中的表。集合是无模式的,这就意味着一个集合中的文档能够是各式各样的。例以下面两个文档能够放到一个集合里 数组

{"greet":"hello world"},{"foo":5} 服务器

5,命名:1,集合名不能是空字符串。 ide

            2,集合名不能有\0,这个是标识结合的结尾 post

            3,不能以"system"开头,这是为系统集合表留的前缀。例如system.user这个集合保存者数据库的用户信息。 网站

            4,千万不要在名字中出现$. url

6,数据库:mongodb 中多个文档组成集合,多个集合能够组成数据库。一个mongodb实例能够继承多个数据库,它们之间能够当作是彻底独立的。每一个数据库具备独立的权限控制,即便在磁盘上,不一样的数据库也放置在不一样文件中。注意,数据库的名字应该所有小写,最多64个字节。 spa

7,mongodb客户端:开启的时候,shell会连接到mongodb服务器的test数据库,并将这个数据库连接赋值给全局变量db。这个变量是shell访问mongodb的主要入口点。

8,shell中的基本操做:CRUD

    1,建立:> post={"title":"production","content":"spider your shop","date":new Date()},上面执行完以后,已经建立了一个有效文档,insert方法将其保存到blog集合中。

    2,>db.blog.insert(post);

    3, 查看>db.blog.find();用db.blog.findOne();能够查看一个文档。

    4,更新:update:至少接受连个参数:新文档的限定条件,新的文档

            blog.status=0;

            db.blog.update({"title":"production"},post);

    5,删除:db.blog.remove();删除所有

                db.blog.remove({"title":"helloworld"});

9,使用数据库帮助命令:

    1,db.help()------->查看数据库级别命令的帮助

    2,db.foo.help()-->集合相关的命令。

10,数据类型:布尔,null,数字,字符串,数组,对象。

                    JSON没有日期类型,不能区分浮点数和整数,当mongodb作了补充。

                    默认状况下,shell中的数字都被mongodb看成是双精度,这样致使默认的数据类型转换成双精度的问题,

11,建立,更新,删除文档:

    插入:    db.blog.insert({"family":"father and mother i love you"});

    批量插入:只有插入多个文档到一个集合,这种操做才会有用。

    删除文档:db.blog.remove();删除全部文档,但不会删除集合自己,原有的索引也会保留。

                  db.blog.remove({'username':'helloworld'});

    更新文档:db.blog.update({'username':'helloworld'},post)

    使用修改器:一般,文档只需一部分须要更新。利用原子的更新修改器,使得这部分更新及为高效。

    案例:在一个集合中放置网站的分析数据,没当有人访问页面的时候,就要增长计数器,每一个URL以及对应的访问次数以下存储在analysis文档中:

           example="{

            "_id":ObjectId("51b1a30013aaef94f07c1f7b"),

            "url":"www.example.com",

            "pageViews": 4444

            }"

        db.example.insert("example");

        db.example.find();

        {

             "_id" : ObjectId("51b1c08513aaef94f07c1f7d"), 

                "url" : "www.example.com", "pageviews" : 0 

        }

        利用修改器进行pageviews的自增1:

        db.example.update({"url":"www.example.com"},------->这里写完后回车

        ...{"$inc":{"pageviews":1}}) ------------------------------->这里写完后回车。

        db.analysis.find();会发现pageviews会增长1.

        说明:JavaScript中变量没有$,因此用$开头算是遗留问题。

相关文章
相关标签/搜索