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 XuBaofeng 18 * @date 2019-07-01 14:52. 19 *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
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 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 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 documents) {233 for (Document document : documents) {234 System.out.println(document.toJson());235 }236 }237 }
更多详情可以查看: