澳门金莎娱乐网站基础概念和安装,MongoDB学习笔

作者: 数据库信息  发布:2019-11-08

2.功能

1.索引

MongoDB帮忙通用的二级索引,允许八种便捷查询,且提供独一索引、复合索引、地理空间引得以致全文索引等。

2.聚合

MongoDB扶植“聚合管道”,顾客能通过简单的部分创制复杂的相会,并经过数据库自动优化。

3.分外的聚焦类型

MongoDB帮忙存在时间少于的成团,适用于那一个将要有个别时刻过期的数据,如会话。MongoDB也扶持固定大小的集结,用于保存近来数据,如日志。

4.文本存款和储蓄

MongoDB支持风流倜傥种非凡易用的商业事务,用于存款和储蓄大文件和文件元数据。

数组

数码列表或数组集能够象征为数组: {“x”:[“a”,”b”,”c”]} 

数组是风度翩翩组值,它既可以作为一直以来对象(如列表、栈或队列卡塔 尔(阿拉伯语:قطر‎,也能同日而道冬天对象(如数据集卡塔尔来操作。

数组中可含蓄分化数据类型的要素 {“things”:[“pie”,3.14]} 。只假使健康的键/值对支撑的全部值都足以看作数组的值,数组中竟然能够嵌套数组。

总结

 

 

 

 

 

备注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

 

二进制数据

二进制数据是一个猖獗字节的字符串。它不可能一贯在shell中选拔。如若要将非utf-8字符保存在数据库中,二进制数据是唯后生可畏的办法。

一、安装

1.下载解压

在官方网站下载对应操作系统版本的安装包,然后解压;笔者那边运用Windows情状设置测验。

2.在D盘创建Mongodbdatadb目录

3.初阶化数据

最佳先将bin目录到场到遭受变量,不然要到命令目录下进行。

mongod --dbpath D:mongodbdatadb

澳门金莎娱乐网站 1

 4.开行服务

在D:mongodb目录下创立mongo.config配置文件,配置文件内容如下,这里只布署了数量和日志路线,别的的参数近来私下认可。

dbpath=D:mongodbdatadb
logpath=D:mongodbdatalogmongo.log  

将mongodb增添到劳动运维项

mongod --config D:mongodbmongo.config --install --serviceName "MongoDB"

删除服务运转项命令

mongod  --remove --serviceName "MongoDB"

起初服务

net start MongoDB

测量试验服务是不是运转,在浏览器中输入localhost:27017;若无手动钦命端口那么暗中同意端口就是27017

澳门金莎娱乐网站 2

内嵌文书档案

文书档案可内嵌别的文书档案,被嵌套的文书档案作为父文书档案的值: {“x”:{“foo”,”bar”}} 

动用内嵌文档,能够使数据协会尤其自然,不用非得存成扁平结构的键/值对。

> post={
... "user":{
... "name":"yyb",
... "address":{
... "street":"123 Park Street",
... "city":"Anytown",
... "state":"NY"
...     }
...   }
... }
{
        "user" : {
                "name" : "yyb",
                "address" : {
                        "street" : "123 Park Street",
                        "city" : "Anytown",
                        "state" : "NY"
                }
        }
}
> db.blog.insert(post)
WriteResult({ "nInserted" : 1 })
> db.blog.find()
{ "_id" : ObjectId("584ea90fce4f8e1bf30ba07d"), "user" : { "name" : "yyb", "address" : { "street" : "123 Park Street", "city" : "Anytown", "state" : "NY" } } }

3.基本概念

  • 文书档案是MongoDB中数据的主干单元,雷同关系型数据库中的行。
  • 二个实例能够享有八个相互独立的数据库,每种数据库都存有本人的集结,集合雷同关系型数据库中的表。
  • 每一个文书档案都有四个极其的键“_id”,这些键在文书档案所属的集合中是并世无双的。
  • 种种文书档案不能够有双重的键值。比如{"blog":"news","blog":"book"},在该文档中键值blog重复。
  • 二个会集能够积存混合的文书档案,即不相同种类的文书档案。但经常不那样做,为了便利查询和处理日常豆蔻年华种档期的顺序的数码放八个集聚。
  • MongoDB不但区分种类,况且分别朗朗上口写。

日期

日期被累积为自新世纪以来通过的飞秒数,不存款和储蓄时区: {“x”:new Date()} 

创办日期对象时,应运用 new Date() ,而非Date(),前者再次来到的是日期的字符串表示,而非日期 Date对象。那么些结果与MongoDB无关,是js的办事体制调控的。由于日期和字符串之间不能够合营,所以进行删改查等大概具有操作时会引致众多主题素材。

> db.blog.insert({"x":Date()})
WriteResult({ "nInserted" : 1 })
> db.blog.find()
{ "_id" : ObjectId("584ea42d3bb80d550a5914fe"), "x" : "Mon Dec 12 2016 21:20:45 GMT 0800 (CST)" }
> db.blog.insert({"x":new Date()})
WriteResult({ "nInserted" : 1 })
> db.blog.find()
{ "_id" : ObjectId("584ea42d3bb80d550a5914fe"), "x" : "Mon Dec 12 2016 21:20:45 GMT 0800 (CST)" }
{ "_id" : ObjectId("584ea4573bb80d550a5914ff"), "x" : ISODate("2016-12-12T13:21:27.361Z") }

5.数据类型

1.null

用以表示空值或不设有的字段

例:{"x":null}

2.布尔型

true和flase两个值,例:

{"x":ture}

3.数值

默许使用陆拾三个人的浮点型数值,对于整形值,能够行使NumberInt类(4字节带符号整数卡塔 尔(英语:State of Qatar)或NumberLong类(表示8字符带符号整数)。例:

默认:{"x":3.14}或者{"x":3}

点名整形值:{"x":NumberInt("3")}大概{"x":NumberLong("3")}

4.字符串

{"x":"foobar"}

5.日期

{"x":new Date()}

6.正则表明式

{"x" : /a/b}

7.数组

{"x" : ["a","b","c"]}

8.内嵌文书档案

文书档案能够嵌套此外文书档案,被嵌套的文书档案作为父文书档案的值

{"x" :{"a" : "b"}}

9.对象id

对象id是叁个12字节的ID,是文书档案的当世无双标志。

10.二进制类型

二进制数据是一个大肆字节的字符串

11.代码

 

字符串

utf-8字符串都得以象征为字符串类型的多少: {“x”:”foobar”} 

概述  

MongoDB是眼下相当的火的生龙活虎种非关系型数据库,作为入门类别的率先篇本篇文章重要介绍Mongdb的底蕴概念知识包涵取名法规、数据类型、功用以至安装等。

 

环境:

OS:Windows

Version:3.4

正则表明式

查询时,使用正则表明式作为限定条件 {“x”:/foobar/i} 

1.特点

MongoDB并不享有一点点关系型数据库夹钟广阔的作用,如三回九转和千头万绪的多行事务。省略这么些效应是出于架构上的寻思(为了博取越来越好的扩大性卡塔尔,因为在分布式系统中那三个效益难以急速的贯彻,同期为了追求质量MongoDB会尽或然的将部分拍卖逻辑交给客商端(通过驱动程序或应用程序代码来落到实处卡塔 尔(阿拉伯语:قطر‎。

行使shell实践脚本

mongo shell会依次实践传入的剧本,然后退出。

E:Program FilesMongoDBServer3.4bin>mongo js1.js
MongoDB shell version v3.4.0-rc3-7-ge24e12c
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.0-rc3-7-ge24e12c
I am yyb in the script1.js

先是:脚本的职位须位居mongo.exe 所在的目录,也正是bin目录下。其次假设布置了情状变量,间接mongo js1.js是极其的。比如:

C:Usersyang>mongo js1.js
2016-12-13T21:25:36.265 0800 E - [main] file [js1.js] doesn't exist
failed to load: js1.js

利用钦赐的主机/端口上的mongod运营脚本,须求先钦点地址,然后再跟上脚本的文件的称谓。

在本子中应用print()函数将内容输出到标准输出,那样就足以在shell中接纳管道命令。假设将shell脚本的输出管道给另二个施用--quiet选项的指令,就能够让shell不打字与印刷“MongoDB shell version...”提醒。

[root@yang bin]# ./mongo --quiet 192.168.1.111:27017/test js1.js
I like to read and study

能够利用load()函数,从交互作用式shell中运作脚本:

> load("js1.js")
I like to read and study
true

在剧本中得以访谈db变量,以及任何全局变量。然则,shell协理函数(比方:“use db”和“show collections”卡塔 尔(阿拉伯语:قطر‎不得以在文书中应用。不过,那一个扶助函数都有对应的js函数。

澳门金莎娱乐网站 3

能够行使脚本将变量注入到shell

/**
*连接到指定的数据库,并且将db指向这个连接
*/
var connectTo=function(port,dbname){
if(!port){
port=27017;
}
if (!dbname) {
dbname="test";
}
db=connect("localhost:" port "/" dbname);
return db;
}

比如在shell中加载这一个本子,connectTo函数就足以应用了。

> typeof connectTo
undefined
> load("defineConnectTo.js")
true
> typeof connectTo
function

而外丰硕扶助函数,仍可以动用脚本将通用的职务和治本活动自动化。私下认可境况,shell会在运转shell时所处的目录中搜求脚本(能够利用run(“pwd”)命令查看卡塔尔。可认为shell内定贰个相对路线也许绝对路线。

> load("/usr/local/mongodb/js1.js")
i am studing mongodb
2016-12-14T19:36:01.744 0800 I -        [thread1] shell: started program (sh6054):  pwd
sh6054| /usr/local/mongodb
true

也能够在shell中应用run()函数来实行命令路程序。能够在函数参数列表中钦点程序所需的参数。平时来讲,这种使用方法的局限性极大,因为出口格式很奇异,何况不援助管道。

> run("ls","-l","/usr/local/mongodb/")
2016-12-14T19:40:23.878 0800 I -        [thread1] shell: started program (sh6098):  ls -l /usr/local/mongodb/
sh6098| 总用量 104
sh6098| drwxrwxr-x. 2 yang yang  4096 12月 13 23:31 bin
sh6098| -rw-r--r--. 1 yang yang 34520 9月  30 18:46 GNU-AGPL-3.0
sh6098| -rw-r--r--. 1 root root    43 12月 14 19:34 js1.js
sh6098| -rw-r--r--. 1 yang yang 16726 9月  30 18:46 MPL-2
sh6098| -rw-r--r--. 1 yang yang  1359 9月  30 18:46 README
sh6098| -rw-r--r--. 1 yang yang 35910 9月  30 18:46 THIRD-PARTY-NOTICES
0

二、报错管理

对象id

目的id是叁个12字节的ID,是文书档案的唯生机勃勃标志 {“x”:ObjectId()} 

MongoDB中蕴藏的文书档案必需有三个“_id”键。确认保证集结中的每一种文书档案都能被唯风流倜傥标志。

本条键的值能够是随机档案的次序的,暗许是个ObjectId对象。对象id设计成轻量型的,差别的机械都能用全局唯风流浪漫的同种方法方便的生成它。那对于在分片情形中生成唯生龙活虎的标识符特别首要。

ObjectId的前4个字节是从标准纪元起先的时刻戳,单位为秒。那会带来一些使得的品质。

  • 时刻戳,与随后的5字节重新组合起来,提供了秒级其他唯风流倜傥性。
  • 是因为时日戳在前,那意味着objectid大约会按插入的顺序排列。
  • 这4字节也隐含了创造文书档案的时光。绝大非常多驱动程序都会提供二个办法,用于从objectId获取这一个音讯。

接下去的3字节是所在主机的天下无双标记符。经常是机器主机名的散列值。那样就足以确定保证不一样主机生成分歧的objectId,不发出冲突。

为了保障在同一机器上冒出的八个进度发生的ObjectId是并世无两的,接下去的八个字节来自产生objectId的进度的进程标志符PID。

前9字节保证了同样分钟分化机器分歧进度发生的ObjectId是唯生龙活虎的。最后3字节是一个机动增添的流速计,确定保证同等进程同大器晚成秒发生的ObjectId也是不风姿浪漫致的。生机勃勃分钟最多允许每个进程具有2564个不等的ObjectId。

假诺插入文书档案时不曾“_id”键,系统会自动帮你创建二个。能够由MongoDB服务做到,但日常会在客商端由驱动程序完毕。

本文由金沙澳门官网发布于数据库信息,转载请注明出处:澳门金莎娱乐网站基础概念和安装,MongoDB学习笔

关键词: 金沙澳门官网

上一篇:哈希分片
下一篇:没有了