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/