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/

:)

原文地址:https://www.cnblogs.com/gotodsp/p/6673357.html