MongoDB -- JAVA基本API操作


  1 package com.example.mongodb.mongodb.demo;
  2 
  3 import com.mongodb.MongoClient;
  4 import com.mongodb.client.FindIterable;
  5 import com.mongodb.client.MongoCollection;
  6 import com.mongodb.client.MongoDatabase;
  7 import com.mongodb.client.MongoIterable;
  8 import org.bson.Document;
  9 
 10 import java.util.ArrayList;
 11 import java.util.Collections;
 12 import java.util.List;
 13 
 14 import static com.mongodb.client.model.Filters.*;
 15 
 16 /**
 17  * @author <a herf="mailto:yanwu0527@163.com">XuBaofeng</a>
 18  * @date 2019-07-01 14:52.
 19  * <p>
 20  * description:
 21  */
 22 public class MongoDbJdbc {
 23     /*** 地址 */
 24     private static final String MONGODB_ADDRESS = "127.0.0.1";
 25     /*** 端口 */
 26     private static final Integer MONGODB_PORT = 27017;
 27     /*** 數據庫 */
 28     private static final String DATABASE_NAME = "yanwu";
 29     /*** 集合 */
 30     private static final String COLLECTION_NAME = "java";
 31     /*** 連接 */
 32     private static MongoClient mongoClient;
 33     /*** 數據庫 */
 34     private static MongoDatabase database;
 35     /*** 集合 */
 36     private static MongoCollection<Document> collection;
 37 
 38     public static void main(String[] args) {
 39         // ----- 建立連接
 40         newMongoClient();
 41         // ----- 查看所有數據庫
 42         listDatabases();
 43         // ----- 選擇數據庫
 44         getDatabase();
 45         // ----- 創建集合
 46         createCollection();
 47         // ----- 獲取集合
 48         getCollection();
 49         // ----- 插入文檔
 50         insert();
 51         // ----- 更新文檔
 52         update();
 53         // ----- 刪除文檔
 54         delete();
 55         // ----- 檢索所有文檔
 56         findAll();
 57         // ----- 條件查找 (匹配)
 58         findByEq();
 59         // ----- 條件查找 [小於]
 60         findByLt();
 61         // ----- 條件查找 [小於等於]
 62         findByLte();
 63         // ----- 條件查找 [大於]
 64         findByGt();
 65         // ----- 條件查找 [大於等於]
 66         findByGte();
 67         // ----- 條件查找 [and]
 68         findByAnd();
 69         // ----- 條件查找 [or]
 70         findByOr();
 71     }
 72 
 73     /**
 74      * 建立連接
 75      */
 76     private static void newMongoClient() {
 77         System.out.println("==================== newMongoClient ====================");
 78         mongoClient = new MongoClient(MONGODB_ADDRESS, MONGODB_PORT);
 79     }
 80 
 81     /**
 82      * 查看所有數據庫
 83      */
 84     private static void listDatabases() {
 85         System.out.println("==================== listDatabases ====================");
 86         MongoIterable<String> names = mongoClient.listDatabaseNames();
 87         for (String mane : names) {
 88             System.out.println(mane);
 89         }
 90     }
 91 
 92     /**
 93      * 獲取數據庫
 94      */
 95     private static void getDatabase() {
 96         System.out.println("==================== getDatabase ====================");
 97         database = mongoClient.getDatabase(DATABASE_NAME);
 98     }
 99 
100     /**
101      * 創建集合
102      */
103     private static void createCollection() {
104         System.out.println("==================== createCollection ====================");
105         database.createCollection(COLLECTION_NAME);
106     }
107 
108     /**
109      * 獲取集合
110      */
111     private static void getCollection() {
112         System.out.println("==================== getCollection ====================");
113         collection = database.getCollection(COLLECTION_NAME);
114     }
115 
116     /**
117      * 插入文檔
118      */
119     private static void insert() {
120         System.out.println("==================== insert ====================");
121         // ----- 插入一條文檔
122         Document document = new Document().append("title", "java").append("desc", "JAVA是我的衣食父母").append("by", "yanwu")
123                 .append("tage", Collections.singletonList("java")).append("likes", 200);
124         collection.insertOne(document);
125         // ----- 插入多條文檔
126         List<Document> documents = new ArrayList<>();
127 
128         Document document1 = new Document().append("title", "php").append("desc", "PHP是世界上最好的語言").append("by", "yanwu")
129                 .append("tage", Collections.singletonList("php")).append("likes", 100);
130         documents.add(document1);
131 
132         Document document2 = new Document().append("title", "python").append("desc", "python是人工智能的未來").append("by", "yanwu")
133                 .append("tage", Collections.singletonList("python")).append("likes", 250);
134         documents.add(document2);
135 
136         Document document3 = new Document().append("title", "mongodb").append("desc", "學習學習").append("by", "yanwu")
137                 .append("tage", Collections.singletonList("mongodb")).append("likes", 150);
138         documents.add(document3);
139 
140         collection.insertMany(documents);
141     }
142 
143     /**
144      * 檢索所有文檔
145      */
146     private static void findAll() {
147         System.out.println("==================== findAll ====================");
148         // ----- 拿到該集合中所有的文檔
149         print(collection.find());
150     }
151 
152     /**
153      * 更新文檔
154      */
155     private static void update() {
156         System.out.println("==================== update ====================");
157         collection.updateMany(eq("title", "java"), new Document("$set", new Document("title", "java語言")));
158     }
159 
160     /**
161      * 刪除文檔
162      */
163     private static void delete() {
164         System.out.println("==================== delete ====================");
165         // ----- 刪除一個
166         collection.deleteOne(eq("title", "java"));
167         findAll();
168         // ----- 刪除多個
169         collection.deleteMany(eq("by", "yanwu"));
170         findAll();
171     }
172 
173     /**
174      * 條件查找 (匹配)
175      */
176     private static void findByEq() {
177         System.out.println("==================== findByEq: likes == 200 ====================");
178         print(collection.find(eq("likes", 200)));
179     }
180 
181     /**
182      * 條件查找 [小於]
183      */
184     private static void findByLt() {
185         System.out.println("==================== findByLt: likes < 200 ====================");
186         print(collection.find(lt("likes", 200)));
187     }
188 
189     /**
190      * 條件查找 [小於等於]
191      */
192     private static void findByLte() {
193         System.out.println("==================== findByLte: likes <= 200 ====================");
194         print(collection.find(lte("likes", 200)));
195     }
196 
197     /**
198      * 條件查找 [大於]
199      */
200     private static void findByGt() {
201         System.out.println("==================== findByGt: likes > 200 ====================");
202         print(collection.find(gt("likes", 200)));
203     }
204 
205     /**
206      * 條件查找 [大於等於]
207      */
208     private static void findByGte() {
209         System.out.println("==================== findByGte: likes >= 200 ====================");
210         print(collection.find(gte("likes", 200)));
211     }
212 
213     /**
214      * 條件查找 [and]
215      */
216     private static void findByAnd() {
217         System.out.println("==================== findByGte: likes > 150 && likes < 250 ====================");
218         print(collection.find(and(gt("likes", 150), lt("likes", 250))));
219     }
220 
221     /**
222      * 條件查找 [or]
223      */
224     private static void findByOr() {
225         System.out.println("==================== findByGte: likes < 150 || likes > 200 ====================");
226         print(collection.find(or(lt("likes", 150), gt("likes", 200))));
227     }
228 
229     /**
230      * 打印輸出文檔集合
231      */
232     private static void print(FindIterable<Document> documents) {
233         for (Document document : documents) {
234             System.out.println(document.toJson());
235         }
236     }
237 }

更多詳情可以查看: http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/


免責聲明!

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



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