当前位置:  数据库>nosql
本页文章导读:
    ▪NoSQL学习之路(三):MongoDB Shell的使用        本文地址http://www.cnblogs.com/egger/archive/2013/04/30/3052142.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑!MongoDB shell  MongoDB自带简洁但功能强大的JavaScript shell。JavaScript shell键入一个.........
    ▪NoSQL学习之路 (二):MongoDB 数据类型和基本概念        本文地址: http://www.cnblogs.com/egger/archive/2013/04/27/3047191.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑!数据类型基本数据类型  MongoDB的文件存储格式为BSON,同JSON一样支持往其.........
    ▪NoSQL学习之路 (一):MongoDB 环境的搭建      本文地址:http://www.cnblogs.com/egger/archive/2013/04/26/3045975.html  欢迎转载 ,请保留此链接๑•́ ₃•̀๑!mongdb官网 :http://www.mongodb.org/数据库下载地址:http://www.mongodb.org/downloads安装m.........

[1]NoSQL学习之路(三):MongoDB Shell的使用
    来源:    发布时间: 2013-10-18

  本文地址http://www.cnblogs.com/egger/archive/2013/04/30/3052142.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑!


MongoDB shell

  MongoDB自带简洁但功能强大的JavaScript shell。JavaScript shell键入一个变量会将变量的值转换为字符串打印到控制台上。


  下面介绍基本的操作,一些注意事项。数据库CRUD操作将在下面的篇幅中介绍《NoSQL学习之路 (四):创建、读取、更新、删除(CRUD)》


  打开命令提示(cmd.exe)。进入到MongoDB解压的目录的bin目录下,即D:\NoSQL\mongodb-win32-x86_64-2.4.3\bin;然后执行mongo.exe(或者mongo)启动MongoDB shell。



shell默认连接test数据库。要使用别的数据库,在服务器地址后添加斜杠和数据库名就可以了(下图连接的就是本地默认端口的mongod,但用的是admin数据库):


还有一种方法选择连接数据库,像SQL shell中一样,使用 "use databaseName",数据库不存在也没关系。使用"db"查看当前连接数据库名词。



 


使用--nodb选项启动shell,而不连接数据库。



 



Tips:使用ctrl+w 快速删除光标所在行内容。


  使用db.help()可以查看数据库级别的命令的帮助,集合的相关帮助可以通过db.foo.help()来査看。


  有个了解函数功用的技巧,就是在输入的时候不要输括号。这样就会显示该函数的JavaScript源代码。下面我们看看remove的机制:



 


  使用db.集合名的方式来访问集合一般不会有问题,但如果集合名恰好是数据库类的一个属性时就不行了。当JavaScript只有在db中找不到指定的属性时,才会将其作为集合返回。当有属性
与目标集合同名时,可以使用getCollection函数。


  例如,要访问version这个集合。因为db.version是个数据库函数(它返回正在运行的MongoDB服务器的版本)。所以输入db.version会显示该函数的JavaScript源代码,而不是我们想显示的集合。


 


  当我们遍历集合众文档信息时,可以书用"."操作符。



Show(db.posts.title);
Show(db.posts.content);
……


 


  也可以使用数组访问形式来访问子集合:



collections=["title","author","content","date"];
for (i in collections) {
  Show(db.posts[collections[i]]);
}





 


JavaScript解释器

shell是功能完本的JavaScript解释器 可以运行任何JavaScript程序.


基本运算:



调用Javascript标准库或者函数:



 


从shell中可以连接任意多个数据库,这对多个服务器的环境还是非常方便的。调用connect (),并将结果赋值给变量。


(分片环境中待补充----)


 


 

本文链接


    
[2]NoSQL学习之路 (二):MongoDB 数据类型和基本概念
    来源:    发布时间: 2013-10-18

  本文地址: http://www.cnblogs.com/egger/archive/2013/04/27/3047191.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑!

数据类型基本数据类型

  MongoDB的文件存储格式为BSON,同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型.与数据库打交道的那些应用。例如,JSON没有日期类型,这会使得处理本来简单的日期问题变得非常繁琐。只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字。也没有办法表示其他常用类型,如正则表达式或函数。

  下面是MongoDB的支持的数据类型:

  • null    null用于表示空值或者不存在的字段。 {"x":null}
  • 布尔   布尔类型有两个值'true'和'false1'. {"X":true}
  • 32位整数  类型不可用。JavaScript仅支持64位浮点数,所以32位整数会被自动转换。
  • 64位整数  不支持这个类型。shell会使用一个特殊的内嵌文档来显示64位整数,
  • 64位浮点数  shell中的数字都是这种类型。下面的表示都是浮点数: {"X" : 3.1415926} {"X" : 3}
  • 字符串   UTF-8字符串都可表示为字符串类型的数据: {"x" : "foobar"}
  • 符号  不支持这种类型。shell将数据库里的符号类型转换成字符串。
  • 对象id  对象id是文档的12字节的唯一 ID, {"X" :ObjectId() }
  • 日期  日期类型存储的是从标准纪元开始的毫秒数。不存储时区: {"X" : new Date()}
  • 正则表达式  文档中可以包含正则表达式,采用JavaScript的正则表达式语法: {"x" : /foobar/i}
  • 代码  文档中还可以包含JavaScript代码:{"x" : function() { /* …… */ }}
  • 二进制数据  二进制数据可以由任意字节的串组成。不过shell中无法使用。
  • 最大值  BSON包括一个特殊类型,表示可能的最大值。shell中没有这个类型。
  • 最小值  BSON包括一个特殊类型,表示可能的最小值。shell中没有这个类型。
  • 未定义  文档中也可以使用未定义类型:{"x":undefined}
  • 数组  值的集合或者列表可以表示成数组:{"x" : ["a", "b", "c"]}
  • 内嵌文档  文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的:{"x" : {"food" : "noodle"}}

 

数字

  JavaScript中只有一种“数字”类型。因为MongoDB中有3种数字类型(32位整数、64位整数和64位浮点数),shell必须绕过JavaScript的限制。默认情况下,shell中的数字都被MongoDB当做是双精度数。这意味着如果你从数据库中获得的是一个32位整数,修改文档后,将文档存回数据库的时候,这个整数也被转换成了浮点数,即便保持这个整数原封不动也会这样的。所以明智的做法是尽量不要在shell下覆盖整个文档。

日期

  JavaScript的Date对象用做MongoDB的日期类型,创建一个新的Date对象时,通常会调用new Data("")。

 

 

基本概念

下面将按照学习RDMS时先介绍类似行、表、数据库概念的知识,然后在去学习增删改查等操作。

1.文档

  文档是MongoDB中数据的基本单元(类似于关系型数据库中的行,但是比行要复杂得多)。多个键及其关联的值有序地放置在一起便是文档。MongoDB的文件存储格式为BSON。

  BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型。如:BSON有Date类型和BinDate类型。BSON有三个特点:轻量性、可遍历性、高效性

  文档就可以这样表示:
  { "firstName": "egger", "lastName":"wong" }

  注意点:

  • 文档中的键/值对是有序的。
  • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌人的文档)。
  • MongoDB区分类型和大小写。
  • MongoDB的文档不能有重复的键。
  • 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
    • 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
    • .和$有特别的意义,只有在特定环境下才能使用。
    • 以下划线"_"开头的键是保留的(不是严格要求的)。
    2.集合

      集合就是一组文档(类似于关系型数据库中的表),可以被看做是没有模式的表。

      无模式

      集合是无模式的。这意味着一个集合里面的文档可以是各式各样的。例如,下面两个文档可以存在于同一个集合里面:
      {"name": "egger"}
      {"age":18}

      上面的文档不光是值的类型不同(字符串和整数),它们的键也是完全不一样的。

      虽然集合里面可以放置任何文档,但是推荐使用多个集合:

    • 把各种各样的文档都混在一个集合里面,无论对于开发者还是管理员来说都是噩梦。
    • 在一个集合里面査询特定类型的文档在速度上也很不划算,分开做多个集合要快得多。
    • 把同种类型的文档放在一个集合里,这样数据会更加集中。
    • 当创建索引的时候,文档会有附加的结构(尤其是有唯一索引的时候)。索引是按照集合来定义的。把同种类型的文档放入同一个集合里面,可以使索引更加有效。 
      命名

      我们可以通过名字来标识集合。集合名可以是满足下列条件的任意UTF-8字符串。

    • 集合名不能是空字符串""。
    • 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
    • 集合名不能以"system."开头,这是为系统集合保留的前缀。
    • 用户创建的集合名字不能含有保留字符$。有些驱动程序的确支持在集合名里面包含$,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。 
      子集合

      组织集合的一种惯例是使用"."字符分开的按命名空间划分的子集合。在MongoDB中使用子集合来组织数据是很好的方法

      例如,一个个人信息可能包含两个集合,分别是person.name和person.age。这样做的目的只是为了使组织结构更好些,也就是说person这个集合(这里根本就不需要存在)及其子集合没有任何关系。把数据库的名字放到集合名前面,得到就是集合的完全限定名,称为命名空间。命名空间的长度不得超过121字节,在实际使用当中应该小于100字节。

      很多MongoDB工具中都包含子集合。

    • GridFS是一种存储大文件的协议,使用子集合来存储文件的元数据,这样就与内容块分开了
    • MongoDB的Web控制台通过子集合的方式将数据组织在DBTOP部分.
    • 绝大多数驱动程序都提供语法糖,为访问指定集合的子集合提供方便。
    3.数据库

      MongoDB中多个集合可以组成数据库。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

      数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串。

    • 不能是空字符串("")。
    • 不得含有' '(空格)、.、$、/、\和\0 (空宇符)。
    • 应全部小写。
    • 最多64字节。

      有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

    • admin
    从权限的角度来看,这是“root”数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
    • local
    这个数据永远不会被复制,可以用来存储限于

        
    [3]NoSQL学习之路 (一):MongoDB 环境的搭建
        来源:    发布时间: 2013-10-18

    本文地址:http://www.cnblogs.com/egger/archive/2013/04/26/3045975.html  欢迎转载 ,请保留此链接๑•́ ₃•̀๑!



    mongdb官网 :http://www.mongodb.org/


    数据库下载地址:http://www.mongodb.org/downloads


    安装mongodb

      安装mongodb一般指构建核心的数据服务器mongodb。mongodb 可以作为单个服务器 、主从节点、 副本集的成员还可以当作片。通常就是所需要的mongodb 进程。


    版本

      mongoDB版本号(x.y.z):偶数版本是稳定版, 奇数是开发版。最初版本的开发分支是非常不稳定的(x.y.0、x.y.l、x.y.2),但当分支进入x.y.5的时候,就非常接近可用于生产的水平了。


    Window下环境安装

      根据自己的环境选择相应版本的安装包。不考虑生产环境,只是学习。下面将选择window-64位,版本2.4.3版本。


      将下载的文件解压到任意目录。我这里是D:\NoSQL\mongodb-win32-x86_64-2.4.3。该目录下有bin文件夹。



      打开命令提示(cmd.exe)。进入到MongoDB解压的目录的bin目录下,即D:\NoSQL\mongodb-win32-x86_64-2.4.3\bin;然后执行mongod.exe(或者mongod)经行安装。



      控制台输出有错误"ERROR: dbpath (\data\db\) does not exist."  \data\db\文件路径不存在。


      MongoDB要建立一个用于存放数据库文件的目录。windows默认使用C:\data\db作为数据目录。但是在安装过程中,不会自动建立文件或者文件夹,需要自己创建。当然我们也可以在系统的任意位置创建该文件目录,然后使用命令 --dbpath 设置数据目录。



    mongod --dbpath  path


     


      在mongodb-win32-x86_64-2.4.3目录下建立data文件夹,然后在data文件夹建立db文件夹,然后在控制台中使用上面的指令启动mongodb:



    D:\NoSQL\mongodb-win32-x86_64-2.4.3\bin>mongod --dbpath D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\db



     当看到这行“waiting for connections on port 27017”时,到浏览器中输入地址“localhost:27017”,ok!



    页面英文的意思:MongoDB 默认监听27017端口。还会启动一个非常基本的HTTP服务器,监听数字比端口号高1000的端口,即28017 获取数据库的管理信息。



    mongod --help查看所有选项


    Ctrl+C来停止mongod的运行


    作为服务进行安装

    MongoDB在Windows中还可以作为服务进行安装。这样可以通过控制面板-管理工具-服务来启动和关闭mongo了。


    使用完整的路径来运行,忽略所有空格并使用--install选项,就可以安装了(--logpath必须设置 )。



    mongod -dbpath "D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\db"  --logpath "D:\NoSQL\mongodb-win32-x86_64-2.4.3\data\log\mongodb.log"  --install --serviceName "MongoDB" 


    使用 "net start 服务名"启动服务:




    注意使用控制台启动MongoDB和允许本地服务会冲突,只能同时启动一个。

    本文链接


        
    最新技术文章:
    ▪30G 的redis 如何优化 - 沐訫    ▪[教程]MongoDB 从入门到进阶 (User系统) - magicD...    ▪Redis使用总结之与Memcached异同 - ceecy
    ▪MongoDB学习 (六):查询 - 辞职回家卖烧饼    ▪在.net中使用aquiles访问Cassandra(一) - amwicfai    ▪在.net中使用aquiles访问Cassandra(二) - amwicfai
    ▪高性能队列Fqueue的设计和使用实践 - 蒋叶湖    ▪MongoDB开发学习 - 喵 喵    ▪MongoDB开发学习 - 喵 喵
    ▪Spring-MongoDB简单操作 - CN.programmer.Luxh    ▪MongoDB 聚合 - 蒋叶湖    ▪nosql数据库 - 蒋叶湖
    ▪Spring-MongoDB简单操作    ▪Redis源码研究--字典    ▪Redis源码研究--字典 - feiyunruyue
    ▪[译]Cassandra 架构简述    ▪[译]Cassandra 架构简述    ▪Spring-MongoDB简单操作
    ▪MongoDB 聚合    ▪NoSQL生态系统    ▪NoSQL生态系统
    ▪nosql数据库    ▪mongodb持久化    ▪MongoDB 聚合
    ▪CentOS 6上的redis搭建实战记录    ▪非关系型数据库的研究与实践    ▪高性能队列Fqueue的设计和使用实践
    ▪php中使用memcached的性能问题    ▪NoSQL架构实践(二)——以NoSQL为主    ▪NoSQL架构实践(三)——以NoSQL为缓存
    ▪在MongoDB中一起使用$or和sort()时,查询性能差...    ▪[转]NoSQL生态系统    ▪NoSQL数据库探讨之一 - 为什么要用非关系数...
    ▪初识Redis及Redis在Windows下的安装和使用    ▪MongoDB 开发学习    ▪Redis.conf
    ▪关于twemproxy和redis分布式    ▪NoSQL学习之路(四):创建、读取、更新、删除...    ▪NoSQL学习之路 (五):查询操作符(Query Operators).1st...
    ▪NoSQL学习之路(三):MongoDB Shell的使用    ▪NoSQL学习之路 (二):MongoDB 数据类型和基本...    ▪NoSQL学习之路 (一):MongoDB 环境的搭建
    ▪NoSQL学习之路 (一):mongoDB 环境的搭建    ▪NoSQL学习之路 (一):mongoDB 环境的搭建和shel...    ▪NoSQL学习之路 (二):mongoDB 数据类型和基本...
    ▪那点所谓的分布式——redis    ▪mongodb查询嵌入式文档    ▪NoSQL历史简介
    ▪Mongo服务器集群配置学习三——分片    ▪MongoDB 导出和导入命令的使用    ▪HBase常用的数据库API操作
    ▪启动HBase后遇到的一个问题    ▪Mongo服务器集群配置学习一——主从复制    ▪Mongo服务器集群配置学习二——副本集
    ▪完全分布式安装HBase    ▪搞一些好玩的东西——redis    ▪Tair监控及统计技巧
    ▪MongoDB 之旅(四) 深入学习    ▪MongoDB 问题123    ▪MongoDB——安装部署以及简单的运用
    ▪MongoDB 之旅(一) 简介    ▪MongoDB 之旅(二) 基本操作(MongoDB Javascript Sh...    ▪MongoDB 之旅(三) 基本管理(MongoDB Javascript Sh...
    ▪mongoDB之windows下安装mongo数据库服务    ▪mongoDB之数据备份恢复工具    ▪CentOS通过yum安装CouchDB
    ▪MongoDB从入门到提高【第一集】---------MongdoDB配...    ▪MongoDB从入门到提高【第二集】---------MongdoDB权...    ▪[教程]MongoDB 从入门到进阶 (TextSearch)
    ▪mongodb数据文件格式    ▪在Window平台安装MongoDB    ▪mongodb journal文件格式
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3