標籤:style blog http io ar color os 使用 sp
一、mongodb用戶端
mongodb提供諸多語言的用戶端,也包括java的用戶端。通過這些用戶端,我們可以很方便地使用編寫代碼的方式對mongodb進行操作。這裡使用java用戶端進行樣本。使用java用戶端首先需要下載jmongodb資料庫java驅動。驅動的源碼地址為:https://github.com/mongodb/mongo-java-driver/ 。這裡工程使用maven構建,需要添加的依賴如下:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.12.4</version></dependency>
二、樣本
1、添加文檔
DB db = null; @Before public void getDb() throws UnknownHostException { MongoClient mongoClient = new MongoClient(); // mongoClient = new MongoClient("localhost"); // mongoClient = new MongoClient( "localhost" , 27017 ); // mongoClient = new MongoClient(Arrays.asList(new ServerAddress("localhost", 27017), new ServerAddress("localhost", 27018), new ServerAddress("localhost", 27019))); //需要驗證的如下 // MongoCredential credential = MongoCredential.createMongoCRCredential(userName, database, password); // MongoClient mongoClient = new MongoClient(new ServerAddress(), Arrays.asList(credential)); mongoClient.setWriteConcern(WriteConcern.JOURNALED); System.out.println("===========DatabaseName============="); for (String s : mongoClient.getDatabaseNames()) { System.out.println(s); } db = mongoClient.getDB("testdb"); } @Test public void addDoc() { DBCollection coll = db.getCollection("person"); BasicDBObject doc = new BasicDBObject("name", "張三")// .append("age", 20)// .append("gender", "mail")// .append("brithday", new Date()) // .append("info", new BasicDBObject("location_x", 203).append( "location_y", 303)); WriteResult result = coll.insert(doc); System.out.println(result); for (int i = 0; i < 10; i++) { BasicDBObject document = new BasicDBObject("name", "zhangsan" + i)// .append("age", 18 + i)// .append("brithday", new Date()); WriteResult result2 = coll.insert(document); System.out.println(result2); } }
2、查詢文檔
@Test public void findDoc() { DBCollection coll = db.getCollection("person"); DBObject person = coll.findOne();// 擷取集合中的第一個文檔 System.out.println("===============findOne======================"); System.out.println(person); // 根據條件查詢;db.person.find({age:18}); DBObject query = new BasicDBObject("age", 18); DBObject person2 = coll.findOne(query); System.out.println(person2); System.out .println("===============findByCondtion======================"); // age小於25; db.person.find({age:{$lt:25}}); query = new BasicDBObject("age", new BasicDBObject("$lt", 25)); DBCursor cursor = coll.find(query); try { while (cursor.hasNext()) { System.out.println(cursor.next()); } } finally { cursor.close(); } System.out.println("===============findAll======================"); // 查詢所有並按照age升序;db.person.find().sort({age:1}); cursor = coll.find().sort(new BasicDBObject("age", -1));// 1升序,-1降序 try { while (cursor.hasNext()) { System.out.println(cursor.next()); } } finally { cursor.close(); } }
3、更新文檔
@Test public void updateDoc() { DBCollection coll = db.getCollection("person"); BasicDBObject query = new BasicDBObject("name", "張三"); DBObject update = coll.findOne(query); update.put("info", new BasicDBObject("location_x", 1999).append( "location_y", 2999)); // 方法一 DBObject person = coll.findAndModify(query, update);// 返回的是未更改前的文檔對象 System.out.println(person); // 方法二 update.put("info", new BasicDBObject("location_x", 19998).append( "location_y", 29998)); WriteResult result = coll.update(query, update); System.out.println(result); }
4、刪除文檔
@Test public void deleteDoc() { DBCollection coll = db.getCollection("person"); BasicDBObject query = new BasicDBObject("name", "zhangsan8"); // 方法一 query = new BasicDBObject("name", "zhangsan9"); DBObject person = coll.findAndRemove(query);// 返回的是刪除的文檔對象 System.out.println(person); // 方法二 query = new BasicDBObject("name", "zhangsan9"); WriteResult result = coll.remove(query); System.out.println(result); }
5、集合相關操作
@Test public void testCollection() { Set<String> colls = db.getCollectionNames();// 資料庫中的所有集合name for (String s : colls) { System.out.println(s); } System.out.println("======================================="); // 建立一個collection,並在collection中添加document DBCollection coll = db.createCollection("testCollection", new BasicDBObject("capped", true).append("size", 1048576)); System.out.println(coll); coll = db.getCollection("testCollection"); // collection中的索引 List<DBObject> list = coll.getIndexInfo(); for (DBObject o : list) { System.out.println(o); } coll.drop(); }
mongodb--java操作