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.引用駆動
ダウンロードされたドライバをプロジェクトに引用します。
2.名前空間を追加する
モンスターDBを使うには以下のクラスを導入する必要があります。もちろんすべてが必要ではありません。使うクラスは導入します。(使う時に導入してもいいです。)
5.クエリー
6.変更
7.削除
8.添削して完全コードを調べる
クラス変換は、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の使い方の完全コード
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.引用駆動
ダウンロードされたドライバをプロジェクトに引用します。
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");
}
結果: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());
// }
結果: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)));
結果: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を実行することに等しい。Set
(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();
}
}
}
結果: