java操作mongodb


まずドライバをダウンロードします
http://download.csdn.net/detail/q383965374/6209691
公式サイトのダウンロードドライバ:
https://github.com/mongodb/mongo-java-driver/downloads
ドライバソースのダウンロード:
https://codeload.github.com/mongodb/mongo-java-driver/zip/master
オンラインソースの確認:
https://github.com/mongodb/mongo-java-driver
mongodbの操作は主に添削します。
本論文の内容:
1.引用駆動
2.名前空間を追加する
3.データベースの接続
4.挿入
5.クエリー
6.変更
7.削除
8.添削して完全コードを調べる
9.使える使い方
10.mapreuceの使い方の完全コード
1.引用駆動
ダウンロードされたドライバをプロジェクトに引用します。
java操作mongodb_第1张图片
2.名前空間を追加する
モンスターDBを使うには以下のクラスを導入する必要があります。もちろんすべてが必要ではありません。使うクラスは導入します。(使う時に導入してもいいです。)
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;
3.データベースの接続
Mongo mg=new Mongo("192.168.0.121",27017);
		DB db = mg.getDB("test"); //     
		DBCollection coll = db.getCollection("Student");//     
4.挿入
//    (    )
		insert(coll);
private static void insert(DBCollection coll) {
		List<DBObject> datas = new ArrayList<DBObject>();
		for (int i=0; i < 100; i++) {
		BasicDBObject bo = new BasicDBObject();
		BasicDBObject xx = new BasicDBObject();
		xx.put("sex", "man");
		xx.put("habit", "basketball");
		
		bo.put("name", "bruce");
		bo.append("number", i);
		
		bo.put("others", xx);
	
		datas.add(bo);
		}
		coll.insert(datas);
		
		System.out.print("  ok");
	}
結果:
java操作mongodb_第2张图片
java操作mongodb_第3张图片
5.クエリー
	//  
		//    
		queryAll(coll);
		
		//    
//		System.out.println(coll.findOne());
		//        
//		System.out.println(coll.findOne(new BasicDBObject("number",4)));
		//        
//		BasicDBObject condition = new BasicDBObject();
//		condition.put("number",4);	
//		DBCursor cur = coll.find(condition);
//		while(cur.hasNext()) {
//		System.out.println(cur.next());
//		}
結果:
java操作mongodb_第4张图片
6.変更
//    
		System.out.println(coll.findOne(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45"))));
		
		coll.update(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45")),new BasicDBObject("name","coco"));
		
coll.update(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45")),new BasicDBObject("name","coco"),true,true);
		//   true             
		//   true             ,       . false ,    
		System.out.println(coll.findOne(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45"))));
結果:

7.削除
//  
		System.out.println(coll.findOne(new BasicDBObject("number",6)));
		coll.findAndRemove(new BasicDBObject("number",6));
		System.out.println(coll.findOne(new BasicDBObject("number",6)));
		
		System.out.println(coll.findOne(new BasicDBObject("number",7)));
		coll.remove(new BasicDBObject("number",7));
		System.out.println(coll.findOne(new BasicDBObject("number",7)));
結果:
java操作mongodb_第5张图片
8.添削して完全コードを調べる
package Test;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import org.bson.types.ObjectId;

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.MongoException;

public class TestMogodb {

	public static void main(String[] args) throws UnknownHostException,MongoException {
		Mongo mg=new Mongo("192.168.0.121",27017);
		DB db = mg.getDB("test"); //     
		DBCollection coll = db.getCollection("Student");//     
		
		
		//    (    )
//		insert(coll);
		
		//  
		//    
//		queryAll(coll);
		
		//    
//		System.out.println(coll.findOne());
		//        
//		System.out.println(coll.findOne(new BasicDBObject("number",4)));
		//        
//		BasicDBObject condition = new BasicDBObject();
//		condition.put("number",4);	
//		DBCursor cur = coll.find(condition);
//		while(cur.hasNext()) {
//		System.out.println(cur.next());
//		}
		
//		//    
//		System.out.println(coll.findOne(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45"))));
//		
//		coll.update(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45")),new BasicDBObject("name","coco"));
//		
//		//coll.update(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45")),new BasicDBObject("name","coco"),true,true);
//		//   true             
//		//   true             ,       . false ,    
//		System.out.println(coll.findOne(new BasicDBObject("_id",new ObjectId("5226fd43789e1cfd2009ea45"))));
		
		//  
		System.out.println(coll.findOne(new BasicDBObject("number",6)));
		coll.findAndRemove(new BasicDBObject("number",6));
		System.out.println(coll.findOne(new BasicDBObject("number",6)));
		
		System.out.println(coll.findOne(new BasicDBObject("number",7)));
		coll.remove(new BasicDBObject("number",7));
		System.out.println(coll.findOne(new BasicDBObject("number",7)));
		
	}

	private static void queryAll(DBCollection coll) {
		DBCursor cur = coll.find();
		while(cur.hasNext()) {
		System.out.println(cur.next());
		}
	}

	private static void insert(DBCollection coll) {
		List<DBObject> datas = new ArrayList<DBObject>();
		for (int i=0; i < 100; i++) {
		BasicDBObject bo = new BasicDBObject();
		BasicDBObject xx = new BasicDBObject();
		xx.put("sex", "man");
		xx.put("habit", "basketball");
		
		bo.put("name", "bruce");
		bo.append("number", i);
		
		bo.put("others", xx);
	
		datas.add(bo);
		}
		coll.insert(datas);
		
		System.out.print("  ok");
	}
	
}
9.使える使い方
クラス変換は、1つのクラスのオブジェクトをmongoDBに預けて、mongoDBから取り出した時に、setObject Class()を使って元のクラスに戻します。public class Tweet implement DBObject{}Tweet myTweet=new Tweet();myTweet.put(「user」「bruuce」)myTweet.put(「message」、「fun」);myTweet.put(「date」,new Date();collection.insert(myTweet)//変換collection.set Object Class(Tweet);Tweet myTweet=(Tweet)collection.findOne();デフォルトIDは、保存先にIDが設定されていない場合、このログにデフォルトでIDを設定します。もちろん指定されたIDを設定してもいいです。bo.put('_id',1);bo.put('name','bructe')collection.insert(bo)権限は、mongoDBへのアクセス権限があるかどうかを判断し、trueに戻ります。そうでないとfalseに戻ります。book auth=db.authenticate(myUserName、myPassword)mongoDBデータベースリストMongo m=new Mongo();for(Stering s:m.get DatabaseNames(){System.out.println];現在のライブラリのすべての表名を調べると、mongoDBでshow tablesを実行することに等しい。Setcolls=db.get Collection Names()for(String s:colls){System.out.println(s)}表の索引List<DBObject>list=coll.get IndexInfo();for(DBObject o:list){System.out.println(o)}データベースMongo m=new Mongo();m.drop Database(「myDatabaseName」);mongoDBのリンクを作成するためのMongo m=new Mongo(「localhost」、27017);DB db=m.getDB(「myDatabaseName」);倉庫名DBCollection coll=db.get Collectionに相当する。表の名前に相当します。最初のレコードDBObject first Doc=coll.findOne()findOne()は記録を返しますが、find()はDBCurrsorのオブジェクトを返します。すべてのデータDB Curer cur=coll.findを照会します。while(cur.has Next(){System.out.println(cur.next);)クエリー記録数coll.find().count();coll.find(new Baic DBObject(「age」,26).count()設定条件検索BaicDBObject condition=new BaicDBObject()condition.put(「name」「bruuce」)condition.put(「age」、26)coll.find;クエリ部分のデータブロックDBCurrsor cursor=coll.find().skyp(0).limit(10);while(cursor.has Next){System.out.println(cursor.next);)比較クエリ(age>50)BaicDBObject condition=new BaicDBObject();condition.put(「age」,new Baic DBObject(「$gt」,50);coll.find;比較符「$gt」:「$gte」より大きい:「$lt」より小さい:「$in」以下の条件クエリを含む/以下の条件20<=30 condition.put(「age」、new BaicDBObject(「$gt」、20)。appnd(「lte」、30)。List datas=new ArayList()を挿入します。for(int i=0;i<100;i+){BaicDBObject bo=new Baic DBObject();bo.put(“name”,“buce”);bo.apped(「age」,i)、datas.add(bo);coll.insert(datas);正則表式はすべての名前が一致する/joh?n/iのレコードを検索します。BaicDBObject query=new BaicDBObject(「name」、pattern);DBCurrsor cursor=coll.find(query);--------------------------------------------------------------------------------------------------------------------------あいまい検索:db.analtics.find({referercuurl:/http:*/i}db.analtics.find({startuutime:{$gte:new Date(2010,5,28)、$lt:new Date
(2010,5,29)},refererful:/http:*/).count()
正則表式はすべての名前が一致する/joh?n/iのレコードを検索します。BaicDBObject query=new BaicDBObject(「name」、pattern);DBCurrsor cursor=coll.find(query)condition.put(「name」「bruuce」)condition.put(「age」、26)coll.find;クエリ部分のデータブロックDBCurrsor cursor=coll.find().skyp(0).limit(10);while(cursor.has Next){System.out.println(cursor.next);)比較クエリ(age>50)BaicDBObject condition=new BaicDBObject();condition.put(「age」,new Baic DBObject(「$gt」,50);coll.find;比較符「$gt」:「$gte」より大きい:「$lt」より小さい:「$in」以下の条件クエリを含む/以下の条件20<=30 condition.put(「age」、new BaicDBObject(「$gt」、20)。appnd(「lte」、30)。List datas=new ArayList()を挿入します。for(int i=0;i<100;i+){BaicDBObject bo=new Baic DBObject();bo.put(“name”,“buce”);bo.apped(「age」,i)、datas.add(bo);coll.insert(datas);正則表式はすべての名前が一致する/joh?n/iのレコードを検索します。BaicDBObject query=new BaicDBObject(「name」、pattern);DBCurrsor cursor=coll.find(query);日付:db.cpc_common.cpc_clicklog.find({datechucreated:{$gte:new Date(2010,5,16)};---------------collection db.c reat Collection(「mycoll」、{size:100000 0000]);索引:db.mycollection.ensureIndex({active:1}
10.mapreuceの使い方の完全コード
package Test;

import com.mongodb.BasicDBObject;  
import com.mongodb.DB;  
import com.mongodb.DBCollection;  
import com.mongodb.DBObject;  
import com.mongodb.MapReduceCommand;  
import com.mongodb.MapReduceOutput;  
import com.mongodb.Mongo; 

public class catchMongo{  
	  
	 /** 
	  * @param args 
	  */  
	 public static void main(String[] args) {  
	  
	  Mongo mongo;  
	    
	  try {  
		  mongo = new Mongo("192.168.0.121", 27017);  
		   DB db = mongo.getDB("test");   
	  
		   DBCollection books = db.getCollection("Student");  
			  
	  	     
		   String map = "function Map(){if(this.number=='0'){emit('result',this);}}";  
		     
		   String reduce = "function Reduce(key, values) {return values[0];}";  
		     
		   MapReduceCommand cmd = new MapReduceCommand(books, map, reduce,  
		     null, MapReduceCommand.OutputType.INLINE, null);  
		  
		   MapReduceOutput out = books.mapReduce(cmd);
	  
	   for (DBObject o : out.results()) {  
	    System.out.println(o.toString());  
	   }  
	  } catch (Exception e) {  
	   // TODO Auto-generated catch block  
	   e.printStackTrace();  
	  }  
	 }  
	}  



結果: