技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

一个简单的MongoDB操作类

import java.net.UnknownHostException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.WriteResult; import com.mongodb.util.JSON; /** * MongoDB操作类 * @author dyk * */ public class MongoDbManagerImpl implements MongoDbManager{ protected static Logger logger = LoggerFactory.getLogger("03046"); private static final String DBNAME = "clementine"; private Mongo mongo = null; private DB dbConnection = null; private String mongoServerAddr; private int mongoServerPort; private static Map<String, DBCollection> dbCollectionMap = new ConcurrentHashMap<String, DBCollection>(); public void setMongoServerAddr(String mongoServerAddr) { this.mongoServerAddr = mongoServerAddr; } public void setMongoServerPort(int mongoServerPort) { this.mongoServerPort = mongoServerPort; } public void init() { if (this.mongo == null) { try { this.mongo = new Mongo( this.mongoServerAddr , this.mongoServerPort); if (null != this.mongo) { this.dbConnection = this.mongo.getDB(DBNAME); } } catch (UnknownHostException e) { logger.error("连接mongoDb失败, 服务器地址: " + this.mongoServerAddr + ", 端口: " + this.mongoServerPort); throw new RuntimeException(e); } } } /** * get an table * @param collectionName * @return */ private DBCollection getDBCollection(String collectionName) { DBCollection collection = null; if (dbCollectionMap.containsKey(collectionName)) { collection = dbCollectionMap.get(collectionName); } else { collection = this.dbConnection.getCollection(collectionName); if (null != collection) { dbCollectionMap.put(collectionName, collection); } } return collection; } /** * check if doc exsit * @param collectionName table name * @param query target document */ @Override public boolean isDocumentExsit(String collectionName, DBObject query) { boolean result = false; DBCursor dbCursor = null; DBCollection collection = this.getDBCollection(collectionName); if (null != collection) { dbCursor = collection.find(query); if (null != dbCursor && dbCursor.hasNext()) { result = true; } } return result; } /** * query an record * @param collectionName table name * @param query target document * @return */ @Override public DBObject selectDocument(String collectionName, DBObject query) { DBObject result = null; DBCursor dbCursor = null; DBCollection collection = this.getDBCollection(collectionName); if (null != collection) { dbCursor = collection.find(query); if (null != dbCursor && dbCursor.hasNext()) { result = dbCursor.next(); } } return result; } /** * /** * insert an new record * @param collectionName table name * @param newDocument new doc * @param query target document */ @Override public void insertDocument(String collectionName, DBObject newDocument) { DBCollection collection = this.getDBCollection(collectionName); if (null != collection) { if (!this.isDocumentExsit(collectionName, newDocument)) {//insert only doc not exist collection.insert(newDocument); } } } /** * update an document * @param collectionName * @param query target document * @param updatedDocument * @return */ @Override public boolean updateDocument(String collectionName, DBObject query, DBObject updatedDocument) { boolean result = false; WriteResult writeResult = null; DBCollection collection = this.getDBCollection(collectionName); if (null != collection) { writeResult = collection.update(query, updatedDocument); if (null != writeResult) { if (writeResult.getN() > 0) { result = true; } } } return result; } /** * delete an document * @param collectionName * @param document target document * @return */ @Override public boolean deleteDocument(String collectionName, DBObject query) { boolean result = false; WriteResult writeResult = null; DBCollection collection = this.getDBCollection(collectionName); if (null != collection) { writeResult = collection.remove(query); if (null != writeResult) { if (writeResult.getN() > 0) { result = true; } } } return result; } public static void main(String[] args) throws UnknownHostException { MongoDbManagerImpl m = new MongoDbManagerImpl(); m.setMongoServerAddr("10.235.164.180"); m.setMongoServerPort(27017); m.init(); String collectionName = "myTest"; //insert String json ="{'num' : 1}"; DBObject doc1 =(DBObject)JSON.parse(json); m.insertDocument(collectionName, doc1); //select DBObject doc2 = null; DBObject query = new BasicDBObject(); query.put("num", 1); doc2 = m.selectDocument(collectionName, query); System.out.println(doc2); //update DBObject updatedDocument = new BasicDBObject(); updatedDocument.put("$set", new BasicDBObject().append("num", 100)); boolean result = m.updateDocument(collectionName, query, updatedDocument); System.out.println(result); query.put("num", 100); // //remove result = m.deleteDocument(collectionName, query); System.out.println(result); } } ... 全文

java Java JAVA mongodb Mongodb MongoDb mongoDB MongoDB

使用LVM对Mongodb进行速度快照和压缩备份

这里使用LVM 逻辑磁盘对 Mongodb进行超速备份,mongodb到了几十G以上,用mongodb工具备份的速度,会让我们感到相当蛋疼的慢,这时候我们可以进行mongdb的data目录进行LVM快照备份。lvm 参考下我的另一个文章 http://rfyiamcool.blog.51cto.com/1030776/959704... 全文

lvm mongodb mongodb 集群管理 mongos mongodb mongodb 复制

第11期面授mongodb教学大纲(课程已讲)

一、NoSQL理论基础1.1 什么是NoSQL?1.1.1 NoSQL普遍采用的技术1.1.2 NoSQL的优势和劣势1.1.3 NewSQL及其常见的实现1.2 分布式系统面临的问题1.2.1 CAP理论及实例验正1.2.2 BASE机制1.3 一致性模型1.3.1 强一致性1.3.2 弱一致性1.3.3 最终一致性1.4 数据一致性实现技术1.4.1 Quorum系统NRW法则1.4.2 两段式提交协议1.5 数据存储模型1.5.1 键值模型及其应用1.5.2 列式模型及其应用1.5.3 文档模型及其应用1.5.4 图式模型及其应用二、MongoDB基础2.1 什么是MongoDB?... 全文

马哥教育 mongodb培训 mongodb教程 mongodb复制集 mongodb shard

inux下MongoDB数据库安装、配置、主从同步、备份与恢复

=== MongoDB 概述 ===Mongo是一个高性能,开源,模式自由(schema-free)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值(key-value)存储方式。Mongo使用C++开发,具有以下特性: 1、面向集合的存储:适合存储对象及JSON形式的数据。 2、动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 3、完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。 4、查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。 ... 全文

linux mongodb mongodb安装 mongodb备份与恢复 mongodb主从同步

cacti监控mongodb和redis

      早在去年已经出现MongoDBRedis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控。cacti的模板一直在更新,若企业已经用到nosql这种非关系数据库如mongodb和redis。可按照以下教程,对mongodb和redis进行监控。该模板可以监控以下资源:... 全文

cacti监控mongodb 监控mongodb 监控redis mongodb+redis cacti监控redis

MongoDB笔记一之简介与入门【第一次编辑:排版】

煮酒品茶:大量序语和实例引用自书中,品茶对其实验后做的笔记上载至博客,任何有版权的人都可以直接下架下文章,谢谢合作。2012/8/14 14:00 MongoDB笔记一之简介与入门【第一次编辑:排版】 elain2012写的MongoDB 实战系列,真心不错!http://blog.51cto.com/zt/99 MongoDB权威指南  第一章MongoDB是一种强大、灵活、可扩展的数据存储方式。它扩展了关系型数据库的众多有用功能,如辅助索引、范围查询和排序。MongoDB的功能非常丰富,比如内置的对MapReduce式聚合的支持,以及对地理空间索引的支持。优点:1、丰富的数据模型MongoDB是面向文档的数据库,将原来的“行”(row),的概念换成更加灵活的“文档”(document)模型。MongoDB没有模式:文档的键不会事先定义也不会固定不变。2、容易扩展采用的面向文档的数据模型使其可以自动在多台服务器之间分割数据,还可以平衡集群的数据和负载,自动重排文档,开发者可以专注于编写应用,需要更大的容量,只需在集群中添加新机器,然后让数据库来处理剩下的事。3、丰富的功能索引(多种快速查询,也提供了咱一的,复合的和地理空间索引能力。)存储JavaScript(开发人员不必使用存储过程了,可以直接在服务端存储JavaScript的函数和值)聚合(支持MapReduce和其它聚合工具)固定集合(集合的大小是有上限的,对某些类型的数据【如:日志】特别有用)文件存储(支持用一种容易使用的协议存储大型文件和文件的元数据)4、不牺牲速度5、简便的管理主从复制,副本集,分片等。  第二章  入门  基本概念----------------------------------------文档是MongoDB中数据的基本单元。(doucument)集合可以被看做是没有模式的表(collections)MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限。MongoDB自带JavaScript shell,用于管理MongoDB实例和操和数据。每一个文档都有一个特殊的键"_id",它在文档所处的集合中是咱一的。-----------------------------------------文档:多个键及其关联的值有序的放置在一起便是文档。(key:vlaue)  {"cwtea" : "hello","key":"vlaue"} 注:文档中键的顺序并不重要。  1、文档中的键/值对应是有序的 {"cwtea" : "hello","key":"vlaue"}和{"key":"vlaue","cwtea" : "hello"}完全不同2、文档中的值可以是多种数据类型,整字,字符串,甚至文档。键可以使用任意UTF-8字符。3、键不能含有\0(空字符),这个字符用来表示键的结尾。4、.和$有特别的意义,只有在特定环境下才能使用。5、以下划线"_"开头的键是保留的,虽然这个并不是严格要求的。6、mongoDB区分类型和区分大小写{"foo" : 3} 不同于{"foo" : "3"} 整数和字符串{ "foo" : "3"}不同于{"Foo" : "3"} 大小写7、mongoDB不能有重复的键 集合概念:集合就是一组文档 collections无模式概念:不同文档可存在同一个集合中。命名:可以满足下列条件的任意UTF-8字符串。1、集合名不能是空字符串""2、集合名不能含 有\0字符(空字符),这个字符表示集合名的结尾.3、集合名不能以"system."开发,这是为系统集合保留的前缀。4、用户创建的集合名字不能含有保留字符$。有些驱动程序的确支持在集合名里面包含$,这是因为某些系统生成的集合中包含该字符。子集合:组织集合的一种惯例是使用 "." 字符分开的按命名空间划分的子集合。GridFS是一种存储大文件的协议,使用子集合来存储文件的元数据,这样就与内容 分开了。Web控制台通过子集合的方式将数据组织在DBTOP部分绝大多数驱动程序都提供语法糖,为访问指定集合的子集合提供方便。(db.blog代表blog集合,db.blog.posts代表blog.posts集合)数据库:多个集合组成数据库。一个MongoDB实例可承载多个数据库,它们之间可视为完全独立,每个数据库都有独立的权限控制,即便在磁盘上,不同的数据库存也放在不同的文件中。命名:数据库名最终会变成文件系统里的文件,所以会有以下限制。不能是空字符串("")不得含有''(空格)、,、$、/、/和\0(空字符)就全部是小写最多64字节保留的数据库名:admin(是"root"数据库,添加一个用户到这个数据库,则具有最高权限)local(这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合)config(当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息)  命名空间:把数据库的名字放到集合名前面,得到就是集合的完全限定名db.blog.posts,命名空间的长度不得超过121,实际使用最好不超过100字节。  MongoDB shell自带一个javascript shell,可以从命令行与MongoDB实例交互,可以执行管理操作,检查运行实例,变或做其他尝试。可以做javascript所做之事。  > math.sin(math.pi /2) Mon Aug 13 23:28:19 ReferenceError: math is not defined (shell):1> Math.sin(Math.PI /2)1> new Date("2010/1/1")ISODate("2009-12-31T16:00:00Z")> new Date("2010/1/1");ISODate("2009-12-31T16:00:00Z")> "hello ,world!".replace("world", "mongodb")hello ,mongodb!> "hello ,world!".replace("world1", "mongodb")hello ,world!> "hello ,2".replace("2", "mongodb")hello ,mongodb> function factorial (n) {... if (n <=1) return 1;... return n * factorial(n-1)... }> factorial(5);120 shell的基本操作:创建、读取、更新和删除。创建:  > use blog switched to db blog> post = {"title" : "my blog post",... "content" : "here is my blog post.",... "date" : new Date()}{"title" : "my blog post","content" : "here is my blog post.","date" : ISODate("2012-08-13T16:24:51.467Z")}> db.blog.insert(post)> db.blog.find(){ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post", "content" : "here is my blog post.", "date" : ISODate("2012-08-13T16:24:51.467Z") }查询:find显示最多20条匹配  > db.blog.findOne() {"_id" : ObjectId("50292a7870fc23d6b7514586"),"title" : "my blog post","content" : "here is my blog post.","date" : ISODate("2012-08-13T16:24:51.467Z")}> db.blog.find({},{"title": 1} ){ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post" }{ "_id" : ObjectId("50292b1a70fc23d6b7514588"), "title" : "two" }update更新:至少两个参数:第一个是要更新的文档的限定条件,第二个是新的文档。  > post {"title" : "my blog post","content" : "here is my blog post.","date" : ISODate("2012-08-13T16:24:51.467Z")}> post.comments =[][ ]> post{"title" : "my blog post","content" : "here is my blog post.","date" : ISODate("2012-08-13T16:24:51.467Z"),"comments" : [ ]}> post.test="hello"hello> post{"title" : "my blog post","content" : "here is my blog post.","date" : ISODate("2012-08-13T16:24:51.467Z"),"comments" : [ ],"test" : "hello"} #替换标题为my blog post的文章,第一个为条件,第二个为更新内容。> db.blog.update({title : "my blog post"}, post)> db.blog.find(){ "_id" : ObjectId("50292b1a70fc23d6b7514588"), "title" : "two", "content" : ISODate("2012-08-13T16:28:10.372Z") }{ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post", "content" : "here is my blog post.", "date" : ISODate("2012-08-13T16:24:51.467Z"), "comments" : [ ], "test" : "hello" }> db.blog.update({title : "two"}, {"title" : "baidu","content" : "www.cwtea.com" })> db.blog.find(){ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post", "content" : "here is my blog post.", "date" : ISODate("2012-08-13T16:24:51.467Z"), "comments" : [ ], "test" : "hello" }{ "_id" : ObjectId("50292b1a70fc23d6b7514588"), "title" : "baidu", "content" : "www.cwtea.com" }删除:remove用来从数据库中永久性地删除文档  > db.blog.remove({"title" : "baidu"}) > db.blog.find(){ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post", "content" : "here is my blog post.", "date" : ISODate("2012-08-13T16:24:51.467Z"), "comments" : [ ], "test" : "hello" }#随时使用help可以使用集合(javascript) 基本数据类型:类似于JSON叫BSON的东西。缺点:JSON没有日期类型,只有一种数字类型,没法区分浮点数和整数,更不能区分32位和64位数字,也没有办法表示其他常用类型,如正则表达式或函数。MongoDB增加了其他一些数据类型:null、布尔、32整数、64位整数、64位浮点数、字符串、符号、对象ID、日期、正则表达式、代码、二进制数据、最大值、最小值、未定义、数组、内嵌文档。数字日期:date()不等于new date()数组:{"things" : ["pie",3.14]}内嵌文档  > lq = { "name" : "cwtea", ... "address" : {... "a" : "1",... "b" : "2",... "c" : "3",... }... ,"hello" :"cwtea"}{"name" : "cwtea","address" : {"a" : "1","b" : "2","c" : "3"},"hello" : "cwtea"}> db.blog.insert(lq)> db.blog.find(){ "_id" : ObjectId("50292a7870fc23d6b7514586"), "title" : "my blog post", "content" : "here is my blog post.", "date" : ISODate("2012-08-13T16:24:51.467Z"), "comments" : [ ], "test" : "hello" }{ "_id" : ObjectId("5029363070fc23d6b7514589"), "name" : "cwtea", "address" : { "a" : "1", "b" : "2", "c" : "3" }, "hello" : "cwtea" }> id和Objectld存储文档必须有一个"_id"默认是个ObjectId对象。ObjectId  0-3[时间戳]4-6[机器]7-8[pid]9-11[计数器]  ... 全文

MongoDB MongoDB入门 MongoDB权威指南

MongoDB学习笔记之了解MongoDB

MongoDB是一个开源的、无模式的文档型数据库,是当前流行的NOSQL类型数据库的一种(非关系型数据库)MongoDB的数据结构非常松散,是类似json的bjson格式,同时支持对数据建立索引。是一个面向集合的,模式自由的文档型数据库。1.面向集合意思是数据被分组存储在数据集合中,被称为一个集合2.模式自由意味着对于存储在MongoDB 数据库中的文件,我们不需要知道它的任何结构定义。提了这 么多次"无模式"或"模式自由",它到是个什么概念呢?例如,下面两个记录可以存在于同一 个集合里面:... 全文

MongoDB

Linux下安装mongodb

下面是在linux下安装mongodb的方法1.首先下载去官网下载源码包(http://www.mongodb.org/downloads)#wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.6.tgz2.mongodb安装#tar -zxvf mongodb-linux-i686-2.0.6.tgz#mv mongodb-2.0.6 /usr/local/mongodb建立一个数据库文件存放的目录#mkdir /data0/mongo_db建立mongodb日志存放的目录#mkdir -p /data0/logs/mongodb3.启动mongodbmongodb命令的临时环境变量#export PATH=$PATH:/usr/local/mongodb/bin/永久#echo "PATH=$PATH:/usr/local/mongodb/bin/" >> /etc/profile启动#mongod --dbpath=/data0/mongo_db/ --logpath=/data0/logs/mongodb/logs.log --logappend --port=27017 --fork --source=127.0.0.1简单的参数说明: –logpath 日志文件路径 –master 指定为主机器 –slave 指定为从机器 –source 指定主机器的IP地址 –pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 –logappend 日志文件末尾添加 –port 启用端口号 –fork 在后台运行 –only 指定只复制哪一个数据库 –slavedelay 指从复制检测的时间间隔 –auth 是否需要验证权限登录(用户名和密码) –noauth 不需要验证权限登录(用户名和密码)本文出自 “学海无涯苦作舟” 博客,请务必保留此出处http://linuxshow.blog.51cto.com/1572053/919968... 全文

mongodb mongodb 安装

mongodb的安装配置

  一、关于mongodb    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 二、mongodb的安装  2.1下载  wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz   2.2安装  # tar zxvf mongodb-linux-x86_64-2.0.2.tgz    # mv mongodb-linux-x86_64-2.0.2 /usr/local/mongodb    # cd /data    # mkdir mongodb    # cd /usr/local/mongodb/    # touch logs  2.3启动服务  # ./bin/mongod --dbpath=/data/mongodb/ --logpath=/usr/local/mongodb/logs.log --logappend  --port=27017 --fork --source=127.0.0.1   简单的参数说明: –logpath 日志文件路径 –master 指定为主机器 –slave 指定为从机器 –source 指定主机器的IP地址 –pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 –logappend 日志文件末尾添加 –port 启用端口号 –fork 在后台运行 –only 指定只复制哪一个数据库 –slavedelay 指从复制检测的时间间隔 –auth 是否需要验证权限登录(用户名和密码) –noauth 不需要验证权限登录(用户名和密码)  可以根据硬件和需要进行调整。  三、PHP的MongoDB拓展的安装 # wget http://pecl.php.net/get/mongo-1.2.6.tgz    # tar zxvf mongo-1.2.6.tgz    # cd mongo-1.2.6    # /usr/local/php5/bin/phpize    # ./configure --enable-mongo=share --with-php-config=/usr/local/php5/bin/php-config    # make && make installl    PHP支持mongodb将生成的拓展mongo.so文件添加到php.ini中,重启php-fpm,或者apache,然后查看下phpinfo()请编辑php.ini文件。添加如下一行:extension=mongo.so然后用php输出:phpinfo,就可以看到mongo的信息了。。这样就说明你安装成功的了! 喜欢linux的朋友可以加QQ群:170838394本文出自 “linux培训” 博客,请务必保留此出处http://freeze.blog.51cto.com/1846439/860068... 全文

mongodb mongodb安装配置

【MongoDB】MongoDB之聚合框架

题记:还有3天2014年结束了,这个月的计划除了总结Mongodb外其他计划都已经完成了。最近由于懒惰对于mongodb的研究暂停了好长时间。在最后的三天里,对于mongodb的研究做以总结和梳理;... 全文

MongoDB 集合框架

MongoDB学习笔记(五) MongoDB文件存取操作

由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个BJSON的最大长度不能超过4M,所以限制了单个文档中能存入的最大文件不能超过4M。为了提供对大容量文件存取的支持,samus驱动提供了“GridFS”方式来支持,“GridFS”方式文件操作需要引入新的程序集“MongoDB.GridFS.dll”。下面我们分别用两种方式来实现。一、在文档对象中存取文件  当文件大小较小的时候,直接存入文档对象实现起来更简洁。比如大量图片文件的存取等,一般图片文件都不会超过4M。我们先实现一个上传图片存入数据库,再取出来写回页面的例子:... 全文

mongodb

php mongodb扩展模块安装

linux下在php上安装mongodb模块 1.下载源码包#wget http://pecl.php.net/get/mongo-1.2.6.tgz2.编译安装#tar -zxvf mongo-1.2.6.tgz #cd  mongo-1.2.6 #/usr/local/php/bin/phpize#./configure --enable-mongo=share --with-php-config=/usr/local/php/bin/php-config#make && make install将生成的“mongo.so” 添加到php.ini里面去然后检测下模块是否安装成功#/usr/local/php/bin/php -mv成功了就可以重启apache本文出自 “学海无涯苦作舟” 博客,请务必保留此出处http://linuxshow.blog.51cto.com/1572053/919971... 全文

php mongodb php mongodb

【MongoDB学习笔记3】处理MongoDB连接错误

安装MongoDB后第一次启用shell登录mongo会出现一下的错误:warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused用一下命令查看以下相关的信息:mongod –v输出以下信息:... 全文

MongoDB

【MongoDB学习笔记10】MongoDB的启动和关闭

一、MongoDB启动MongoDB用mongod命令来启动,不建议用service mongod start或者chkconfig mongod on来启动MongoDB,因为mongod每次启动需要带参数,不然会造成错误; 建议先设置好配置文件/etc/mongod.conf后,每次手动用命令启动mongod –f /etc/mongod.conf或者设置开机重启echo “mongod –f /etc/mongod.conf” >>/etc/rc.d/rc.local 关于/etc/mongod.conf中常用的选项介绍:--dbpath: 指定数据目录,必选,不配置会启动报错;... 全文

MongoDB

【MongoDB】MongoDB之优化器Profiler

在mysql数据库中,慢查询日志经常作为优化数据库的依据, mongodb中依然有类似的功能。Mongodb自带的profiler,可以方便地记录所有耗时的操作,以便于调优;一、开始profiler功能开启profier功能有两种:第一种就是直接在启动参数里面进行设置,就在茄冬mongodb时候添加-profile=级别第二种就是在客户端执行“db.setProfilingLevel(级别)”命令... 全文

MongoDB 优化器

Spring mongodb整合

Spring mongodb整合注意一个特殊的Jar包:spring-core-4.0.5.RELEASE.jarObjenesisStd这个类是spring4.0以上才提供的。版本不对就会抛出:Caused by: java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd spring-data-mongodb-1.5.0.RELEASE.jar这个jar之前我用1.6会抛出下面的异常:... 全文

Spring mongodb整合 spring mongo mongodb

mongodb的备份与恢复

mongodb提供了两个命令来备份(mongodump )和恢复(mongorestore )数据库。1.备份(mongodump )用法 :[root@web3 3]# mongodump --helpoptions:--help                   produce help message-v [ --verbose ]         be more verbose (include multiple times for more verbosity e.g. -vvvvv)-h [ --host ] arg        mongo host to connect to ("left,right" for pairs)-d [ --db ] arg          database to use-c [ --collection ] arg  collection to use (some commands)-u [ --username ] arg    username-p [ --password ] arg    password--dbpath arg             directly access mongod data files in the given path,instead of connecting to a mongod instance - needs to lock the data directory, so cannot be used if a mongod is currently accessing the same path--directoryperdb         if dbpath specified, each db is in a separate directory-o [ --out ] arg (=dump) output directory例子:[root@web3 ~]# mongodump -h 192.168.1.111 -d citys -o /backup/mongobak/3connected to: 192.168.1.103DATABASE: citys  to     /backup/mongobak/3/cityscitys.building to /backup/mongobak/3/citys/building.bson13650 objectscitys.system.indexes to /backup/mongobak/3/citys/system.indexes.bson1 objects备份出来的数据是二进制的,已经经过压缩。比实际数据库要小很多,我的数据库显示占用了260多M,备份后只有2M。2.恢复(mongorestore )用法:[root@web3 3]# mongorestore --helpusage: mongorestore [options] [directory or filename to restore from]options:--help                  produce help message-v [ --verbose ]        be more verbose (include multiple times for more verbosity e.g. -vvvvv)-h [ --host ] arg       mongo host to connect to ("left,right" for pairs)-d [ --db ] arg         database to use-c [ --collection ] arg collection to use (some commands)-u [ --username ] arg   username-p [ --password ] arg   password--dbpath arg            directly access mongod data files in the given path, instead of connecting to a mongod instance - needs tolock the data directory, so cannot be used if a mongod is currently accessing the same path--directoryperdb        if dbpath specified, each db is in a separate directory--drop                  drop each collection before import--objcheck              validate object before inserting--drop参数可以在导入之前把collection先删掉。例子:[root@web3 3]# mongorestore -h 127.0.0.1 --directoryperdb /backup/mongobak/3/         connected to: 127.0.0.1/backup/mongobak/3/citys/building.bsongoing into namespace [citys.building]13667 objects/backup/mongobak/3/citys/system.indexes.bsongoing into namespace [citys.system.indexes]1 objects另外mongodb还提供了mongoexport 和 mongoimport 这两个命令来导出或导入数据,导出的数据是json格式的。也可以实现备份和恢复的功能。例:mongoexport -d mixi_top_city_prod -c building_45 -q '{ "uid" : "10832545" }' > mongo_10832545.bsonmongoimport -d mixi_top_city -c building_45 --file mongo_10832545.bson from :http://hi.baidu.com/farmerluo/item/95a25ac353fa0457bdef69bb... 全文

mongo mongodb mongodb 备份 备份

【MongoDB】MongoDB数据库之海量存储机制

GridFS是一种将大型文件存储在Mongodb数据库中的文件规范。一、如何实现海量存储由于Mongodb中的bson对象大小是限制的,所以gridfs规范提供了一种透明的机制,可以将一个大文件分成多个较小的文件。这样的机制允许有效地保存大文件的对象,特别是哪些巨大的文件,比如视频,高清图片;该规范指定了一个将文件分块的标准,每个文件都在集合对象中保存一个元数据对象,一个或多个块对象可被组合在一个chunk块集合中。mongodb中主要是利用mongofiles工具。Grifs使用两个表来存储数据:Files(包含元数据对象)chunks(抱哈你一些相关信息的二进制块)... 全文

MongoDB gridfs

MongoDB学习笔记(六) MongoDB索引用法和效率分析

MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致。由于集合中的键(字段)可以是普通数据类型,也可以是子文档。MongoDB可以在各种类型的键上创建索引。下面分别讲解各种类型的索引的创建,查询,以及索引的维护等。一、创建索引 1. 默认索引... 全文

mongodb

【MongoDB学习笔记2】MongoDB基本知识

1.MongoDB的数据基本称为文档,类似关系数据库的中的行;2.类似,集合(Collection)是动态模式(dynamic schame)的表;3.MongoDB的实例可以有多个相互独立的数据库,没有数据库中包含多个集合;4.每个文档都有一个键,这个键在所在的集合中是唯一的;5.MongoDB自带一个JavaScript Shell,用来管理MongoDB实例和数据操作; 一.文档和键文档数据表达类似哈希或者字典,例如:{”geeting”:”hello world!”,”foo”:3}或者{”geeting”:”hello world!”}{”foo”:3}... 全文

基础知识 MongoDB

2 3 4 5 6 7 8 9 10 11