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:[email protected]">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/

转载于:https://www.cnblogs.com/yanwu0527/p/11115198.html

猜你喜欢

转载自blog.csdn.net/weixin_34034261/article/details/94512258