MongoDB 3.X JAVA基本操作


對Collection的操作

  1 import java.util.ArrayList;
  2 import java.util.Iterator;
  3 import java.util.List;
  4 
  5 import org.bson.Document;
  6 
  7 import com.mongodb.Block;
  8 import com.mongodb.MongoClient;
  9 import com.mongodb.MongoClientURI;
 10 import com.mongodb.MongoCredential;
 11 import com.mongodb.ServerAddress;
 12 import com.mongodb.client.FindIterable;
 13 import com.mongodb.client.MongoCollection;
 14 import com.mongodb.client.MongoCursor;
 15 import com.mongodb.client.MongoDatabase;
 16 import com.mongodb.client.result.DeleteResult;
 17 import com.mongodb.client.result.UpdateResult;
 18 import com.mongodb.client.model.BulkWriteOptions;
 19 import com.mongodb.client.model.DeleteOneModel;
 20 import com.mongodb.client.model.Filters;
 21 import com.mongodb.client.model.InsertOneModel;
 22 import com.mongodb.client.model.Projections;
 23 import com.mongodb.client.model.ReplaceOneModel;
 24 import com.mongodb.client.model.Sorts;
 25 import com.mongodb.client.model.UpdateOneModel;
 26 import com.mongodb.client.model.WriteModel;
 27 
 28 import static com.mongodb.client.model.Filters.gt; /***/
 29 import static com.mongodb.client.model.Filters.eq;
 30 import static com.mongodb.client.model.Filters.and;
 31 import static com.mongodb.client.model.Filters.lt;
 32 
 33 
 34 public class MongoDBJDBC {
 35 
 36     @SuppressWarnings("resource")
 37     public static void main(String[] args) {
 38         try {
 39             /** 直接登錄 */
 40             // To directly connect to a single MongoDB server.
 41             // (this will not auto-discover the primary even if it's a member of a replica set)
 42             /*
 43             MongoClient mongoClient = new MongoClient("192.168.253.10", 27017);
 44             MongoDatabase mongoDatabase = mongoClient.getDatabase("dsp");
 45             System.out.println("Connect to database successfully!");
 46              */
 47 
 48             /** 使用URI連接信息連接 */
 49             /*
 50             MongoClientURI connectionString = new MongoClientURI("mongodb://192.168.253.10:27017,192.168.253.20:27018,192.168.253.30:27019");
 51             MongoClient mongoClient = new MongoClient(connectionString);
 52              */
 53 
 54             /** Replica Set 認證登錄 */
 55             // to connect to a replica set, with auto-discovery of the primary, supply a seed list of members
 56             // 數據庫URI(兩個參數分別為:服務器地址、端口)
 57             ServerAddress serverAddress = new ServerAddress("192.168.253.10", 27017);
 58             List<ServerAddress> addressList = new ArrayList<ServerAddress>();
 59             addressList.add(serverAddress);
 60             // 認證信息(三個參數分別為:用戶名、數據庫名稱、密碼) 
 61             MongoCredential credential = MongoCredential.createScramSha1Credential("dsp", "dsp", "shi".toCharArray());
 62             List<MongoCredential> credentialList = new ArrayList<MongoCredential>();
 63             credentialList.add(credential);
 64             // 根據URI和認證信息獲取數據庫連接
 65             MongoClient mongoClient = new MongoClient(addressList, credentialList);
 66 
 67             /** 切換數據庫 */
 68             MongoDatabase mongoDatabase = mongoClient.getDatabase("dsp");
 69             /** 切換到需要操作的集合 */
 70             MongoCollection collection = mongoDatabase.getCollection("col");
 71 
 72             /** 插入文檔 */  
 73             // 創建文檔 org.bson.Document對象,參數為K:V格式
 74             // 創建文檔集合List<Document> 
 75             // 將文檔集合插入數據庫集合中collection.insertMany(List<Document>),插入單個文檔可以用collection.insertOne(Document)
 76             /*
 77             List<Document> docList = new ArrayList<Document>();
 78             for (int idx = 0; idx < 10; ++idx) {
 79                 Document doc = new Document("title", "MongoDB" + idx).
 80                         append("desc", "數據庫" + idx).
 81                         append("likes", 100 + idx * 10).
 82                         append("by", "dsp" + idx);
 83                 docList.add(doc);
 84             }
 85             collection.insertMany(docList);
 86             */
 87 
 88             /** 更新文檔 */
 89             /*
 90             UpdateResult updateResult = collection.updateMany(and(gt("likes", 90), lt("likes", 110)), new Document("$set", new Document("likes", 30)));
 91             updateResult.getMatchedCount();
 92             updateResult.getUpsertedId();
 93             updateResult.getModifiedCount();
 94             */
 95 
 96             /** 刪除文檔 */
 97             /*
 98             DeleteResult deleteResult = collection.deleteMany(Filters.eq("likes", 30));
 99             System.out.println("本次刪除 " + deleteResult.getDeletedCount() + " 條記錄!");
100             */
101 
102             /** 檢索文檔 */
103             /*
104             FindIterable<Document> findIterable = collection.find();
105             MongoCursor<Document> mongoCursor = findIterable.iterator();
106             try {
107                 while (mongoCursor.hasNext()) {
108                     System.out.println(mongoCursor.next().toJson());
109                 }
110             } finally {
111                 mongoCursor.close();
112             }
113             */
114             
115             // 查詢過濾器
116             /*
117             Document myDoc = (Document) collection.find(eq("likes", 10)).first();
118             System.out.println(myDoc.toJson());
119             */
120         
121             /** 使用范圍查詢獲取一個較大的子集 */
122             Block<Document> printBlock = new Block<Document>() {
123                 @Override
124                 public void apply(Document doc) {
125                     System.out.println(doc.toJson());
126                 }
127             };
128             // 過濾 likes > 10
129             // collection.find(gt("likes", 10)).forEach(printBlock);
130             // 過濾 10 <= likes <= 100
131             // collection.find(and(Filters.gte("likes", 10), Filters.lte("likes", 100))).forEach(printBlock);
132             
133             /** 排序 */
134             // collection.find(Filters.exists("likes")).sort(Sorts.descending("likes")).limit(2).forEach(printBlock);
135             
136             /** Projection */
137             // Document myDoc = (Document) collection.find().projection(Projections.excludeId()).first();
138             // System.out.println(myDoc.toJson());
139             
140             /** ordered bulk writes */
141             List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
142             writes.add(new InsertOneModel<Document>(new Document("_id", 13)));
143             writes.add(new InsertOneModel<Document>(new Document("_id", 14)));
144             writes.add(new InsertOneModel<Document>(new Document("_id", 15)));
145             writes.add(new UpdateOneModel<Document>(new Document("_id", 10), new Document("$set", new Document("x", 101010))));
146             writes.add(new DeleteOneModel<Document>(new Document("_id", 11)));
147             writes.add(new ReplaceOneModel<Document>(new Document("_id", 12), new Document("_id", 12).append("x", 121212)));
148             // bulkWrite默認BulkWriteOptions
149             // collection.bulkWrite(writes);
150             // collection.find().forEach(printBlock);
151             // 
152             // collection.bulkWrite(writes, new BulkWriteOptions().ordered(false));
153             // collection.find().forEach(printBlock);
154             
155             /** drop集合 */
156             // collection.drop();
157             
158             /** drop數據庫 */
159             // mongoDatabase.drop();
160         } catch (Exception e) {  
161             System.err.println(e.getClass().getName() + " : " + e.getMessage());  
162         } finally {
163             // 防止意外,關閉數據庫連接
164             // mongoClient.close();
165         }
166     }
167 
168 }

參考:

https://github.com/mongodb/mongo-java-driver/blob/3.0.x/driver/src/examples/tour/QuickTour.java

http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM