zoukankan      html  css  js  c++  java
  • 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/

    :)

  • 相关阅读:
    PIC18F2455/2550/4455/4550之通用串行总线USB
    今天,一个新的起点
    WM_COPYDATA消息
    图片浏览(附带样式+效果)
    这条路,走远一点,再远一点
    html之table(10种表格)
    数据导出成Excel
    .net 附件下载
    .net Repeater嵌套的数据绑定问题
    AjaxPro.2.dll的使用方法,以实例讲解。
  • 原文地址:https://www.cnblogs.com/gotodsp/p/6673357.html
Copyright © 2011-2022 走看看