MongoDB番外篇

原创 2016年06月01日 16:57:20

最近过的好烦恼~~
无聊的时候就会翻出自己的flash书本看看,之前对actionscript并不了解,慢慢的了解一些了,这里超级热,热的我看不进去,就滚过来码字了~~
可是我这里要说还是MongoDB
这里就写一写MongoDB中一些特别的东西吧,特不特别我也不清楚,重要的是现在我想码字了

rs.slaveOk()//在从主机访问数据设置的时候要先执行这句,因为主从模式下为了避免主从节点的数据不一致的问题,从节点是不能查看以及修改数据的,必须执行这句之后才可以。
mongod --dbpath /usr/local/mongodb/mongodb/data/db/ --slave --source=192.168.1.202:27017 –autoresync//参数autoresync参数为了是强制从节点同步主节点的数据
db.table.createIndex({"id":"hashed"})//创建索引
db.table.getIndexes()//默认在id字段上有索引,创建索引后则应该有两个索引才对。
db.table.ensureIndex({"somefield"1},"background":true)//在后台建立索引

有两种方法
方法1,db.runCommand({“distanct”:”表名”,”key”:”所要处理的键”,”query”:{查询条件}}).values
//这个可以获得所有不同的distinct的值
db.runCommand({“distanct”:”表名”,”key”:”所要处理的键”,”query”:{查询条件}}).values.length
//可以获得distinct字段的数量
方法2,代表[‘表名’].distinct(‘要进行distinct的字段’).Length

db.表名.findOne()._id.getTimestamp();//获得_id相应的时间值。
在MongoDB中是文档存储的,也就是模式自由的,我们所取到的文档中实际上就是MongoDB中的类,DBObject(接口)BasicDBObject(实现类),这是查询获得的结果,是一种K-V结构的。文档由很多的k-v结构组成。


   Mongo m = new Mongo( "192.168.21.111" , 27017 );  
            //选择数据库,如果没有这个数据库的话,会自动建立  
            DB  db = m.getDB( "mydb" );  
              DBCollection collection = db.getCollection("myCollectionTest");  

            BasicDBObject doc = new BasicDBObject(); //文档或者可以看作是k-v记录集 
            doc.put("name", "MongoDB");  
            doc.put("type", "database");  
            doc.put("count", 1);  

            BasicDBObject info = new BasicDBObject();  
            info.put("x", 203);  
            info.put("y", 102);  
            doc.put("info", info);  

            //插入一条数据,数据如下  
            // {  
            //     "name" : "MongoDB",  
            //     "type" : "database",  
            //     "count" : 1,  
            //     "info" : {  
            //                 x : 203,  
            //                 y : 102  
            //               }  
            //  }  
            // 可以循环插入多条数据  
            collection.insert(doc);  
            //查找第一条数据,显示如下,_id是系统自动帮加上的,全局唯一  
            //{ "_id" : "49902cde5162504500b45c2c" , "name" : "MongoDB" , "type" : "database" , "count" : 1 , "info" : { "x" : 203 , "y" : 102}}  
            DBObject myDoc = collection.findOne();  
            System.out.println(myDoc);  

            //插入多条数据  
            for (int i=0; i < 100; i++) {  
                collection.insert(new BasicDBObject().append("i", i));  
            } 
            //获取文档条数  
            System.out.println(collection.getCount());  

            //使用Cursor 获取所有文档  
            DBCursor cursor = collection.find();  
            try {  
                while(cursor.hasNext()) {  
                    System.out.println(cursor.next());  
                }  
            } finally {  
                cursor.close();  
            }  

            //查找操作,获取单条记录  
            //{ "_id" : "49903677516250c1008d624e" , "i" : 71 }  
            BasicDBObject query = new BasicDBObject();  
            query.put("i", 71);  
            cursor = collection.find(query);  
            try {  
                while(cursor.hasNext()) {  
                    System.out.println(cursor.next());  
                }  
            } finally {  
                cursor.close();  
            }  

            //查找 i>50的项  
            query = new BasicDBObject();  
            query.put("i", new BasicDBObject("$gt", 50));  // e.g. find all where i > 50  
            cursor = collection.find(query);  
            try {  
                while(cursor.hasNext()) {  
                    System.out.println(cursor.next());  
                }  
            } finally {  
                cursor.close();  
            }  


            //查找 20<i<=30  
            query = new BasicDBObject();  
            query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));  // i.e.   20 < i <= 30  
            cursor = collection.find(query);  
            try {  
                while(cursor.hasNext()) {  
                    System.out.println(cursor.next());  
                }  
            } finally {  
                cursor.close();  
            }  

            //修改 i=71的一项  
            query = new BasicDBObject();  
            query.put("i", 71);  
            BasicDBObject update = new BasicDBObject();  
            update.put("i", 710);  
            DBObject dbobj = collection.findAndModify(query, update);  
            System.out.println(dbobj);  

            //修改 i=72的一项  
            query = new BasicDBObject();  
            query.put("i", 72);  
            update = new BasicDBObject();  
            update.put("i", 720);  
            WriteResult result = collection.update(query, update);  
            System.out.println(result);  

            //删除i=61的项  
            query = new BasicDBObject();  
            query.put("i", 61);  
            collection.findAndRemove(query);  
            //删除i=62的项  
            BasicDBObject remove = new BasicDBObject();  
            remove.put("i", 62);  
            collection.remove(remove);  

            //创建索引 1为升序、-1为降序  
            collection.createIndex(new BasicDBObject("i", 1));  // create index on "i", ascending  

            //获取索引列表  
            List<DBObject> list = collection.getIndexInfo();  
            for (DBObject o : list) {  
                System.out.println(o);  
            }  

            //获取数据库列表  
            for (String s : m.getDatabaseNames()) {  
                System.out.println(s);  
            }  
            //获取集合列表  
            Set<String> colls = db.getCollectionNames();  
            for (String s : colls) {  
                System.out.println(s);  
            }  

            //删除数据库  
            //m.dropDatabase("my_new_db");  


        } catch (UnknownHostException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }   

参考自http://blog.csdn.net/xyz_lmn/article/details/8071565

版权声明:本文为博主原创文章,未经博主允许不得转载。

编程珠玑番外篇-D. 高级语言怎么来的

编程珠玑番外篇-D. 高级语言怎么来的-1 作者:徐宥 原文:http://blog.youxu.info/2009/05/13/hpl/ 终于放暑假了, 有心情来八卦了. 我主要想八卦一下高级...
  • xiaojianpitt
  • xiaojianpitt
  • 2012年07月01日 17:11
  • 3625

【聚沙成塔系列】之《UML九种图

一、包 (一)相关概念: 1、包: 一个包=一层=一个命名空间=一个文件夹 2、包的命名:       简单名:王老二       路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高...
  • dyllove98
  • dyllove98
  • 2013年08月01日 19:51
  • 5825

[uboot] (番外篇)uboot relocation介绍

uboot relocation
  • ooonebook
  • ooonebook
  • 2016年11月05日 21:29
  • 1499

数学之美番外篇:进化论中的概率论

数学之美番外篇:进化论中的概率论 By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) 李笑来老师在blog上转了一篇宏文,“15 Answers to...
  • pongba
  • pongba
  • 2007年12月02日 22:19
  • 16688

数学之美番外篇:快排为什么那样快

数学之美番外篇:快排为什么那样快  By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba)TopLanguage(http://groups.google...
  • pongba
  • pongba
  • 2008年06月13日 20:16
  • 43767

第6章 andriod ARM 实战番外篇 2

ARM实战番外篇2   使用的工具是ARM的ADS   ARM堆栈   1、 当堆栈指针指向最上头的一个地址时称为:满堆栈 2、 当堆栈指针指向最上头的一个地址的上个地址称为:空堆栈 ...
  • strom2418
  • strom2418
  • 2016年03月15日 15:12
  • 385

揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局

揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局 覃超帝国兴亡史 12月11日 11:45 FACEBOOK 互联网 分类 :互联网 阅读:1527  抢沙发 ...
  • zkl99999
  • zkl99999
  • 2015年12月11日 20:45
  • 597

MongoDB学习笔记番外篇:JDBC方式操作MongoDB示例

JDBC方式操作MongoDB:连接数据库、创建集合、文档的CRUD操作
  • wangnan537
  • wangnan537
  • 2016年12月28日 17:35
  • 3918

番外篇

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ———————————————————————————————————————————————...
  • yushaopu
  • yushaopu
  • 2017年05月12日 15:44
  • 283

hook-app

目的:hook一个特定应用的特定类的特定函数(这个已经经过clutch,再经过class-dump出来)。 首先要让特定应用加载你的dylib(注入)。 两个方法: 1. 手动制...
  • bluesky_03
  • bluesky_03
  • 2014年12月13日 17:15
  • 432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MongoDB番外篇
举报原因:
原因补充:

(最多只允许输入30个字)