高性能NoSQL--MongoDB
文章平均质量分 92
大数据小小罗
做一个有思想的程序设计者!
展开
-
2.Linux下安装MongoDB
1.下载https://www.mongodb.com/download-center#community 根据自己的机器配置选择相应版本,比如我的是CentOS6.5 32位的,下载linux 32-bit legacy i6862.解压使用上传工具或者sftp命令上传至需要运行的机器 使用命令 tar -zxvf #.tgz文件# 进行解压 使用mv src dest 命令移动到需要安装的原创 2016-11-01 11:54:59 · 287 阅读 · 0 评论 -
3.mongoDB Shell 基本操作
一.mongod服务的启动与停止输入 mongod --help查看启动项 参数 功能 --dbpath 指定数据库的目录,默认在window下是c:\data\db\ --port 指定服务器监听的端口号码,默认是27017 --fork 用守护进程的方式启动mongoDB --logpath 指定日志的输出路径,默认是控制台 --config 指定启原创 2016-12-06 16:55:59 · 681 阅读 · 0 评论 -
15.利用Fsync锁备份,数据修复
1.Fsync的使用mongoDB的简单结构:2.上锁和解锁上锁(切换到 admin 数据库下) db.runCommand({fsync:1lock:1});练习:尝试给当前数据库上锁:> db.runCommand({fsync:1,lock:1});{ "errmsg" : "access denied; use admin db", "ok" : 0 }提示上锁失败,原因是:没有在原创 2016-12-09 16:37:39 · 634 阅读 · 0 评论 -
14.导入、导出、运行时备份
1.导出数据(需中断其他操作)打开CMD 查看mongoexport命令 参数 含义 -d database 指明使用的库 -c colletion 指明要导出的表(不指明则默认导出该库中所有的表(集合)) -o outputfile 指明要导出的文件名 -csv 制定导出的是 csv 格式 -q 过滤导出 –type 指定其他格式 `< j原创 2016-12-09 16:31:16 · 300 阅读 · 0 评论 -
16.用户管理、安全认证
1 创建用户1.1 创建一个管理员用户先切换到admin数据库下> use adminswitched to db admin然后添加一个全局的管理员用户> db.addUser("boss","password"){ "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 }{ "user" : "boss",原创 2016-12-14 12:10:33 · 466 阅读 · 0 评论 -
18.副本集
副本集是对主从复制的一种完善,也是推荐的MongoDB的复制策略。主从复制和副本集使用了相同的复制机制,但副本集与主从复制不同的地方在于,它还能够保证自动故障转移。如果主节点由于某些原因下线了,可能的话,会自动将一个从节点提升为主节点。副本集还提供了其他增强,比如更易于恢复和更高级的部署拓扑。用一个简单的例子表明副本集的工作原理: 第一张图表明A是活跃主节点,B、C都是用于备份的从节点。 第二张原创 2016-12-22 19:46:51 · 602 阅读 · 0 评论 -
19.分片
分片就是将数据库分布在多台服务器上为什么会用到分片?1 机器的磁盘空间不足 2 单个的mongoDB服务器已经不能满足大量的插入操作 3 想通过把大数据放到内存中来提高性能1.组成介绍:1.分片MongoDB分片集群将数据分布在一个或多个分片上。每个分片都部署成一个MongoDB副本集,该副本集保存了集群整体数据的一部分。因为每个分片都是一个副本集没所以它们拥有自己的复制机制,能够自动进行故障转原创 2016-12-25 21:49:27 · 638 阅读 · 0 评论 -
20.使用javaAPI操作MongoDB
package com.itcast.helloworld;import java.util.ArrayList;import java.util.List;import com.itcast.util.DBUtil;import com.mongodb.BasicDBObject;import com.mongodb.DBCollection;import com.mongodb.DBCu原创 2016-12-26 17:50:01 · 663 阅读 · 0 评论 -
MongoDB经典面试题集锦
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库? NoSQL是非关系型数据库,NoSQL = Not Only SQL。 关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。 在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。 在考虑数据库的成熟度转载 2016-12-20 16:03:10 · 6280 阅读 · 1 评论 -
13.服务器端脚本
脚本的解释执行db.eval(“function() { return 5 + 6; }”)利用db.eval可以在MongoDB的服务器端执行任意JavaScript脚本。用处有很多,比如事务模拟。重点要提的就是,如果传入的JavaScript脚本过大会给调试代码很多不便,此时可以将调试信息写入到数据库日志中,方法是在脚本中调用如下语句:db.eval("print('Hello, world'原创 2016-12-08 16:39:24 · 311 阅读 · 0 评论 -
12.GridFS文件系统
1.概念GridFS是mongoDB自带的文件系统,它以二进制的形式存储文件 大型文件系统的绝大多数特性GridFS全可以完成两个明确:1.GridFS并非MongoDB的内部特性,它是所有官方驱动用来在数据库中管理大型二进制对象的一个惯例2.GridFS没有真实文件系统那样丰富的语义。它没有锁和并发的协议,这就把GridFS接口限制在了简单的提交(put)、获取(get)和删除(delete)原创 2016-12-08 10:47:20 · 834 阅读 · 0 评论 -
11.固定集合的特性
1.固定集合的特性1.1 固定集合默认是没有索引的,就算是_id也是没有索引的 1.2 由于不需分配新的空间,他的插入速度是非常快的 1.3 固定集合的顺序是确定的,导致查询速度是非常快的 1.4 最适合的是应用就是日志管理2.创建固定集合2.1创建一个新的固定集合要求大小是100个字节,可以存储文档10个db.createCollection("mycoll",{size:100,capp原创 2016-12-06 18:24:06 · 443 阅读 · 0 评论 -
1.mongoDB的windows安装过程
1. 下载好安装包网址:http://www.mongodb.org/downloads2. 解压到常用软件安装目录下(自定义,但目录中不能包含中文、空格)3. 配置环境变量 在path变量下添加 E:\MyProgram\Mongodb\bin 方便后续启动4. 创建mongo服务快捷启动方式 为了便于快捷启动mongo数据库服务器,在桌面新建一个.bat批处理文件 内容: mo原创 2016-10-17 22:50:03 · 373 阅读 · 0 评论 -
4.mongoDB shell 之增删改操作
4.1 insert增加操作1.向给定数据库添加集合并且添加记录db.[documentName].insert({…})插入数据时需注意事项:1.1 每条数据都有一个_id字段,如果不指定,则使用ObjectId类型的随机值作为id。 ObjectId由12个字节组成,【时间戳,精确到秒–4字节】【机器标识–3字节】 【进程id–2字节】【随机计数器–3字节】1.2 _id 字段唯一,不能原创 2016-12-06 16:52:43 · 3454 阅读 · 0 评论 -
5. find操作详解
4.4 find操作详解find语法:db.[documentName].find({条件},{键指定})1 查询出所有数据的指定键(name,age,country)0:不显示 1:显示db.persons.find({},{name:1,age:1,country:1,_id:0})> db.persons.find({},{name:1,age:1,country:1,_id:0}){ "原创 2016-12-06 16:53:41 · 1716 阅读 · 0 评论 -
6.分页与排序
分页与排序1. limit() 返回指定条数的数据a.查询出persons文档中前5条数据 > db.persons.find({},{_id:0}).limit(5){ "name" : "tom", "age" : 25, "email" : "214557457@qq.com", "c" : 75, "m" : 66, "e" : 97, "country" : "USA", "books"原创 2016-12-06 17:17:22 · 432 阅读 · 0 评论 -
7.游标
1.游标利用游标遍历查询数据> var persons = db.persons.find();> while(persons.hasNext()){... obj = persons.next();... print(obj.name);... }查询结果:tomlilizhangsanlisiwangwuzhaoliupiaoyingjunlizhenxian原创 2016-12-06 17:28:41 · 312 阅读 · 0 评论 -
8.索引的创建
索引1.创建简单索引准备数据 向books集合中插入20w条数据:> for(var i=0;i<200000; i++){db.books.insert({number:i,name:i+"book"})}1.1 先测试一下没有创建索引之前的查询效率var start = new Date();db.books.find({number:65535})var end = new Date原创 2016-12-06 17:54:32 · 382 阅读 · 0 评论 -
9.聚合函数count+distinct+group + MapReduce
1.max最大值 min最小值mongoDB不像SQL那样有min() 和max()函数。但是可以通过sort排序和limit限制返回来得到想要的结果找到投票数helpful_votes**最多**的评论:(最大值,按照降序排列,并限制返回第1条记录)db.reviews.find({}).sort({helpful_votes : -1}).limit(1)找到投票数helpful_votes**原创 2016-12-06 18:09:43 · 1344 阅读 · 0 评论 -
10.数据库命令操作 runCommand()
1.命令执行器runCommand1.1用命令执行完成一次删除表的操作 db.runCommand({drop:"map"}) { "nIndexesWas" : 2, "msg" : "indexes dropped for collection", "ns" : "foobar.map", "ok" : 1 }2.如何查询原创 2016-12-06 18:18:22 · 9605 阅读 · 0 评论 -
17.主从备份
1.主从备份实践1.创建数据库数据存放文件夹2.创建启动脚本文件master创建mongodb.conf文件dbpath = E:\MyProgram\MongodbDATA\07\8888 #主数据库地址port = 8888 #主数据库端口号bind_ip = 127.0.0.1 #主数据库所在服务器master = true #表明身份--主服务器创建mongod服务启动脚本文件 mo原创 2016-12-20 17:46:02 · 586 阅读 · 0 评论