mongodb数据库安装
2018-06-22 01:01:15来源:未知 阅读 ()
mongodb的安装
1,下载安装包: http://www.runoob.com/mongodb/mongodb-window-install.html
2,安装至: D:\MongoDB,将D:\MongoDB\bin目录加入环境变量
3,在 D:\MongoDB下新建文件夹 :
D:\MongoDB\data\db D:\MongoDB\log\mongod.log
4,直接在命令行指定配置:
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
5,启动\关闭服务:
net start MongoDB net stop MongoDB
6,登录:
mongo
账号的创建
#1、创建账号 use admin db.createUser( { user: "root", pwd: "123", roles: [ { role: "root", db: "admin" } ] } ) use test db.createUser( { user: "www", pwd: "123", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "db1" } ] } ) #2、重启数据库 mongod --remove
mongod --bind_ip 0.0.0.0 --port 27017 --logpath D:\MongoDB\log\mongod.log --logappend --dbpath D:\MongoDB\data\db --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install --auth
#3、登录:注意使用双引号而非单引号
mongo --port 27017 -u "root" -p "123" --authenticationDatabase "admin"
也可以在登录之后用db.auth("账号","密码")登录 mongo use admin db.auth("root","123")
基本数据类型
1、在概念上,MongoDB的文档与Javascript的对象相近,因而可以认为它类似于JSON。JSON(http://www.json.org)是一种简单的数据表示方式:其规范仅用一段文字就能描述清楚(其官网证明了这点),且仅包含六种数据类型。
2、这样有很多好处:易于理解、易于解析、易于记忆。然而从另一方面说,因为只有null、布尔、数字、字符串、数字和对象这几种数据类型,所以JSON的表达能力有一定的局限。
3、虽然JSON具备的这些类型已经具有很强的表现力,但绝大数应用(尤其是在于数据库打交道时)都还需要其他一些重要的类型。例如,JSON没有日期类型,这使得原本容易日期处理变得烦人。另外,JSON只有一种数字类型,无法区分浮点数和整数,更别区分32位和64位了。再者JSON无法表示其他一些通用类型,如正则表达式或函数。
4、MongoDB在保留了JSON基本键/值对特性的基础上,添加了其他一些数据类型。在不同的编程语言下,这些类型的确切表示有些许差异。下面说明了MongoDB支持的其他通用类型,以及如何正在文档中使用它们
#1、null:用于表示空或不存在的字段 d={'x':null} #2、布尔型:true和false d={'x':true,'y':false} #3、数值 d={'x':3,'y':3.1415926} #4、字符串 d={'x':'www'} #5、日期 d={'x':new Date()} d.x.getHours() #6、正则表达式 d={'pattern':/^www.*?nb$/i} 正则写在//内,后面的i代表: i 忽略大小写 m 多行匹配模式 x 忽略非转义的空白字符 s 单行匹配模式 #7、数组 d={'x':[1,'a','v']} #8、内嵌文档 user={'name':'www','addr':{'country':'China','city':'YT'}} user.addr.country #9、对象id:是一个12字节的ID,是文档的唯一标识,不可变 d={'x':ObjectId()}
5、_id和ObjectId
MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任意类型,默认是个ObjectId对象。 在一个集合里,每个文档都有唯一的“_id”,确保集合里每个文档都能被唯一标识。 不同集合"_id"的值可以重复,但同一集合内"_id"的值必须唯一 #1、ObjectId ObjectId是"_id"的默认类型。因为设计MongoDb的初衷就是用作分布式数据库,所以能够在分片环境中生成 唯一的标识符非常重要,而常规的做法:在多个服务器上同步自动增加主键既费时又费力,这就是MongoDB采用 ObjectId的原因。 ObjectId采用12字节的存储空间,是一个由24个十六进制数字组成的字符串 0|1|2|3| 4|5|6| 7|8 9|10|11 时间戳 机器 PID 计数器 如果快速创建多个ObjectId,会发现每次只有最后几位有变化。另外,中间的几位数字也会变化(要是在创建过程中停顿几秒)。 这是ObjectId的创建方式导致的,如上图 时间戳单位为秒,与随后5个字节组合起来,提供了秒级的唯一性。这个4个字节隐藏了文档的创建时间,绝大多数驱动程序都会提供 一个方法,用于从ObjectId中获取这些信息。 因为使用的是当前时间,很多用户担心要对服务器进行时钟同步。其实没必要,因为时间戳的实际值并不重要,只要它总是不停增加就好。 接下来3个字节是所在主机的唯一标识符。通常是机器主机名的散列值。这样就可以保证不同主机生成不同的ObjectId,不产生冲突 接下来连个字节确保了在同一台机器上并发的多个进程产生的ObjectId是唯一的 前9个字节确保了同一秒钟不同机器不同进程产生的ObjectId是唯一的。最后3个字节是一个自动增加的 计数器。确保相同进程的同一秒产生的 ObjectId也是不一样的。 #2、自动生成_id 如果插入文档时没有"_id"键,系统会自帮你创建 一个。可以由MongoDb服务器来做这件事。 但通常会在客户端由驱动程序完成。这一做法非常好地体现了MongoDb的哲学:能交给客户端驱动程序来做的事情就不要交给服务器来做。 这种理念背后的原因是:即便是像MongoDB这样扩展性非常好的数据库,扩展应用层也要比扩展数据库层容易的多。将工作交给客户端做就 减轻了数据库扩展的负担。
数据库操作
#1、增 use config #如果数据库不存在,则创建数据库,否则切换到指定数据库。 #2、查 show dbs #查看所有 可以看到,我们刚创建的数据库config并不在数据库的列表中, 要显示它,我们需要向config数据库插入一些数据。 db.table1.insert({'a':1}) #3、删 use config #先切换到要删的库下 db.dropDatabase() #删除当前库
集合操作
#1、增 当第一个文档插入时,集合就会被创建 > use database1 switched to db database1 > db.table1.insert({'a':1}) WriteResult({ "nInserted" : 1 }) > db.table2.insert({'b':2}) WriteResult({ "nInserted" : 1 }) #2、查 > show tables table1 table2 #3、删 > db.table1.drop() true > show tables table2
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python3安装impala 2019-08-13
- python指定pip安装源 2019-08-13
- python 安装impala包 2019-08-13
- Django基本知识 2019-08-13
- 链接 Mysql 创建 数据库和创表,增加数据 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash