MongoDB番外篇
2016-06-01 16:57
507 查看
最近过的好烦恼~~
无聊的时候就会翻出自己的flash书本看看,之前对actionscript并不了解,慢慢的了解一些了,这里超级热,热的我看不进去,就滚过来码字了~~
可是我这里要说还是MongoDB
这里就写一写MongoDB中一些特别的东西吧,特不特别我也不清楚,重要的是现在我想码字了
有两种方法
方法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结构组成。
参考自http://blog.csdn.net/xyz_lmn/article/details/8071565
无聊的时候就会翻出自己的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
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- 信息安全聚合 Sec-News 的重构之路
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- 使用zabbix监控mongodb的方法
- Node.js的MongoDB驱动Mongoose基本使用教程
- MongoDB系列教程(四):设置用户访问权限
- node.js连接mongoDB数据库 快速搭建自己的web服务
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- 关于mongoose连接mongodb重复访问报错的解决办法
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解