[mongodb] java操作mongodb

标签: mongodb java mongodb | 发表时间:2013-11-25 13:52 | 作者:red7sk
分享到:
出处:http://www.iteye.com

package com.ooooo.mongo;

 

import java.net.UnknownHostException;

import java.util.Set;

 

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import org.junit.Test;

 

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.MongoClient;

import com.mongodb.MongoException;

 

public class JavaMongoDBTest {

 

/**

* Java + MongoDB Hello world Example

*/

 

   public static void main(String[] args) {

       try {

           //实例化Mongo对象,连接27017端口

       MongoClient mongo = new MongoClient("localhost", 27017);

                              //连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立

           DB db = mongo.getDB("ytn-db");

           // Get collection from MongoDB, database named "yourDB"

//从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立

           DBCollection collection = db.getCollection("yourCollection");

   // 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。

           BasicDBObject document = new BasicDBObject();

           document.put("id", 1002);

           document.put("msg", "hello world mongoDB in Java---ytan");

           document.put("msg23", "hello world mongoDB in Java---yian--002");

           document.put("msg23111", "hello world mongoDB in Java---yun--002");

 

           //将新建立的document保存到collection中去

           collection.insert(document);

           // 创建要查询的document

           BasicDBObject searchQuery = new BasicDBObject();

           searchQuery.put("id", 1002);

           // 使用collection的find方法查找document

           DBCursor cursor = collection.find(searchQuery);

           //循环输出结果

           while (cursor.hasNext()) {

           System.out.println(cursor.next());

 

           

           }

           System.out.println("Done"); 

       } catch (UnknownHostException e) {

           e.printStackTrace();

       } catch (MongoException e) {

           e.printStackTrace();

       }

   }

   

   

   

   @Test

   public void testcase01_MongoDB2json() throws Exception {

   

        //实例化Mongo对象,连接27017端口

        MongoClient mongo = new MongoClient("localhost", 27017);

                               //连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立

            for (String s : mongo.getDatabaseNames()) { 

            System.out.println(s); 

            } 

       

        DB db = mongo.getDB("ynt-db");

        

            

            Set<String> collections = db.getCollectionNames();

          for(String collectionName:collections){

          System.out.println(collectionName);

          }

          

            // Get collection from MongoDB, database named "yourDB"

            //从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立

            DBCollection collection = db.getCollection("yourCollection");

            

     BasicDBObject searchQuery = new BasicDBObject();

           searchQuery.put("id", 1002);

           // 使用collection的find方法查找document

           DBCursor cursor = collection.find(searchQuery);

           

   

   

   JSONObject  dataJson=new JSONObject(String.valueOf(cursor.next()));

System.out.println(dataJson);

   

//JSONObject  response=dataJson.getJSONObject("msg");

//JSONArray data=response.getJSONArray("data");

//JSONObject info=data.getJSONObject(0);

String province=dataJson.getString("msg");

String city=dataJson.getString("id");

String district=dataJson.getString("_id");

System.out.println(province+city+district);

 

 

   }

}

 

 

 

[mongodb]java操作mongodb

博客分类:
使用mongoDB需要导入以下类,当然不是全部需要,用到的类就导入。 
import com.mongodb.Mongo; 
import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.BasicDBObject; 
import com.mongodb.DBObject; 
import com.mongodb.DBCursor; 
import com.mongodb.ObjectId; 

类转换 
当把一个类对象存到mongoDB后,从mongoDB取出来时使用setObjectClass()将其转换回原来的类。 
public class Tweet implements DBObject { 
    /* ... */ 

Tweet myTweet = new Tweet(); 
myTweet.put("user", "bruce"); 
myTweet.put("message", "fun"); 
myTweet.put("date", new Date()); 
collection.insert(myTweet); 
//转换 
collection.setObjectClass(Tweet); 
Tweet myTweet = (Tweet)collection.findOne(); 

默认ID 
当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id")。 
当然你也可以设置自己指定的ID,如:(在mongoDB中执行用db.users.save({_id:1,name:'bruce'});) 
BasicDBObject bo = new BasicDBObject(); 
bo.put('_id', 1); 
bo.put('name', 'bruce'); 
collection.insert(bo); 

权限 
判断是否有mongoDB的访问权限,有就返回true,否则返回false。 
boolean auth = db.authenticate(myUserName, myPassword); 

查看mongoDB数据库列表 
Mongo m = new Mongo(); 
for (String s : m.getDatabaseNames()) { 
System.out.println(s); 



查看当前库下所有的表名,等于在mongoDB中执行show tables; 
Set<String> colls = db.getCollectionNames(); 
for (String s : colls) { 
System.out.println(s); 


查看一个表的索引 
List<DBObject> list = coll.getIndexInfo(); 
for (DBObject o : list) { 
System.out.println(o); 


删除一个数据库 
Mongo m = new Mongo(); 
m.dropDatabase("myDatabaseName"); 

建立mongoDB的链接 
Mongo m = new Mongo("localhost", 27017); 
DB db = m.getDB("myDatabaseName"); //相当于库名 
DBCollection coll = db.getCollection("myUsersTable");//相当于表名 

#查询数据 
查询第一条记录 
DBObject firstDoc = coll.findOne(); 
findOne()返回一个记录,而find()返回的是DBCursor游标对象。 

查询全部数据 
DBCursor cur = coll.find(); 
while(cur.hasNext()) { 
System.out.println(cur.next()); 


查询记录数量 
coll.find().count(); 
coll.find(new BasicDBObject("age", 26)).count(); 

设置条件查询 
BasicDBObject condition = new BasicDBObject(); 
condition.put("name", "bruce"); 
condition.put("age", 26); 
coll.find(condition); 

查询部分数据块 
DBCursor cursor = coll.find().skip(0).limit(10); 
while(cursor.hasNext()) { 
System.out.println(cursor.next()); 


比较查询(age > 50) 
BasicDBObject condition = new BasicDBObject(); 
condition.put("age", new BasicDBObject("$gt", 50)); 
coll.find(condition); 
比较符 
"$gt": 大于 
"$gte":大于等于 
"$lt": 小于 
"$lte":小于等于 
"$in": 包含 
//以下条件查询20<age<=30 
condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30)); 

#插入数据 
批量插入 
List datas = new ArrayList(); 
for (int i=0; i < 100; i++) { 
BasicDBObject bo = new BasicDBObject(); 
bo.put("name", "bruce"); 
bo.append("age", i); 
datas.add(bo); 

coll.insert(datas); 

正则表达式 
查询所有名字匹配 /joh?n/i 的记录 
Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE); 
BasicDBObject query = new BasicDBObject("name", pattern); 
DBCursor cursor = coll.find(query);


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mongodb java mongodb] 推荐:

[mongodb] java操作mongodb

- - 数据库 - ITeye博客
           //实例化Mongo对象,连接27017端口.                               //连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立. //从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立.

文章: MongoDB、Java及ORM

- - InfoQ cn
目前有很多互相竞争的NoSQL产品,它们使用的方式不尽相同,但都能很好地解决大数据问题. MongoDB就是其中一款非常不错的产品. MongoDB是面向文档、无Schema的存储解决方案,它用JSON风格的文档展现、查询、修改数据. MongoDB有很丰富的文档,安装和设置都很简单,而且易于扩展.

Java和MongoDB之Hello World

- - BlogJava-首页技术区
新建Java Project,并把mongo-java-driver驱动加入到项目bulid path中,如果你使用的是maven增加依赖. 2.连接上MongoDB. //>2.10版本. 如果需要验证,需要输入用户名和密码. 3.MongoDB数据库 得到MongoDB中的数据库,如果数据库名不存在,MongoDB会自动创建.

Java MongoDB : Save image example(译)

- - 数据库 - ITeye博客
原文出自:http://www.mkyong.com/mongodb/java-mongodb-save-image-example/. 返回目录: http://ysj5125094.iteye.com/blog/2192754  . 译:在本教程中,我们将向你展示如何通过  GridFS API 保存一个图片到MongoDB.

MongoDB:mongodb的索引操作

- - CSDN博客推荐文章
对于数据库而言,无非就是增删改查,通常我们在项目应用中,READ操作又占50%以上的操作,客户往往对此也比较敏感,如果在这方面,效率上处理不好,往往是要遭后人唾弃的. 所以这时就需要索引来发挥作用了,下面我们先看一下索引给我们带来的感官上的区别,然后我们再详细说说mongodb的索引操作. 一、首先,我们向数据库中插入10万条数据:.

【MongoDB】MongoDB之优化器Profiler

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

夜说mongodb

- Lianhui Wang - NoSQLFan
前两天本站刚刚分享了wordnik使用MongoDB经验的文章:《Wordnik 的 MongoDB 使用经历》,今天又看到一位朋友对这方面做的总结,分享在这里,供大家参考. 赋闲以后很长没有更新博客了,说忙完全是借口,多半因为没有兴致所致. 今天凌晨比赛多多,趁着比赛的前奏和间隙,遂浏览些技术文章.

MongoDB与内存

- 高春辉 - 火丁笔记
但凡初次接触MongoDB的人,无不惊讶于它对内存的贪得无厌,至于个中缘由,我先讲讲Linux是如何管理内存的,再说说MongoDB是如何使用内存的,答案自然就清楚了. 据说带着问题学习更有效,那就先看一个MongoDB服务器的top命令结果:. 这台MongoDB服务器有没有性能问题. 先讲讲Linux是如何管理内存的.

白话MongoDB(一)

- Ease - 江边潮未尽,枫红一季秋
按照官方的说法,MongoDB是一种可扩展的高性能的开源的面向文档(document-oriented )的数据库,采用C++开发. 注意mongo不是mango(芒果),这个词是从humongous中截取出来的,其野心不言而明,直指海量数据存储. 和其他很多NoSQL不太一样,MongoDB背后有一个专门的商业公司在提供支持和推广,有点类似MySQL AB的模式.