mongodb学习总结(二)

本文详细介绍如何使用Java进行MongoDB的基本操作,包括无密码及带密码连接数据库、创建集合、插入文档、查找文档、更新文档以及删除文档等核心功能。

public class App {
  /**
  * 无密码连接mongodb服务
  */
  public void connectToMongoNoPasswd() throws Exception{
    //连接到 mongodb 服务
    MongoClient mongoClient = new MongoClient( "192.168.1.5" , 27017 );
    //连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
  }

  /**
  * 设置密码连接mongodb服务
  */
  public void connectToMongoByPasswd() throws Exception{
    //ServerAddress()两个参数分别为 服务器地址 和 端口
    ServerAddress serverAddress = new ServerAddress("192.168.1.5",27017);
    List<ServerAddress> addrs = new ArrayList<ServerAddress>();
    addrs.add(serverAddress);
    //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码     
    MongoCredential credential = MongoCredential.createScramSha1Credential("username",
                   "databaseName", "password".toCharArray());
    List<MongoCredential> credentials = new ArrayList<MongoCredential>();
    credentials.add(credential);
    //通过连接认证获取MongoDB连接
    MongoClient mongoClient = new MongoClient(addrs,credentials);
    //连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
    System.out.println("Connect to database successfully");
  }

  /**
  * 创建集合
  */
  public void createCol() throws Exception{
    // 连接到 mongodb 服务
    MongoClient mongoClient = new MongoClient( "192.168.1.5" , 27017 );
    // 连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    mongoDatabase.createCollection("test");
    System.out.println("集合创建成功");
  }

  /**
  * 获取集合
  */
  public void getCol() throws Exception{
    //连接到 mongodb服务
    MongoClient mongoClient = new MongoClient( "192.168.1.5" , 27017 );
    //连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("test");
    System.out.println("集合 test 选择成功");
  }

  

  /**
  * 插入文档
  */
  public void addDoc() throws Exception{
    // 连接到 mongodb 服务
    MongoClient mongoClient = new MongoClient("192.168.1.5", 27017 );
    // 连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("test");
    System.out.println("集合 test 选择成功");
    //插入文档
    /**
    * 1. 创建文档 org.bson.Document 参数为key-value的格式
    * 2. 创建文档集合List<Document>
    * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>)
    * 插入单个文档可以用 mongoCollection.insertOne(Document)
    **/
    Document document = new Document("title", "mongo")
        .append("description", "database")
        .append("likes", 100)
        .append("by", "Fly");
    List<Document> documents = new ArrayList<Document>();
    documents.add(document);
    collection.insertMany(documents);
    System.out.println("文档插入成功");
  }

  /**
  * 检索所有文档
  */
  public void findDoc() throws Exception{
    //连接到 mongodb服务
    MongoClient mongoClient = new MongoClient( "192.168.1.5" , 27017 );
    // 连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("test");
    System.out.println("集合 test 选择成功");
    //检索所有文档
    /**
    *1. 获取迭代器FindIterable<Document>
    *2. 获取游标MongoCursor<Document>
    *3. 通过游标遍历检索出的文档集合
    **/
    FindIterable<Document> findIterable = collection.find();
    MongoCursor<Document> mongoCursor = findIterable.iterator();
    while(mongoCursor.hasNext()){
      System.out.println(mongoCursor.next());
    }
  }

  /**
  * 更新文档
  */
  public void updateDoc() throws Exception{
    //连接到 mongodb服务
    MongoClient mongoClient = new MongoClient("192.168.1.5", 27017);
    //连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("test");
    System.out.println("集合 test 选择成功");
    //更新文档 将文档中likes=100的文档修改为likes=200
    collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
    //检索查看结果
    FindIterable<Document> findIterable = collection.find();
    MongoCursor<Document> mongoCursor = findIterable.iterator();
    while(mongoCursor.hasNext()){
      System.out.println(mongoCursor.next());
    }
  }

  /**
  * 删除文档
  */
  public void delDoc() throws Exception{
    //连接到 mongodb 服务
    MongoClient mongoClient = new MongoClient("192.168.1.5", 27017);
    //连接到数据库
    MongoDatabase mongoDatabase = mongoClient.getDatabase("col");
    System.out.println("Connect to database successfully");
    MongoCollection<Document> collection = mongoDatabase.getCollection("test");
    System.out.println("集合 test 选择成功");
    //删除符合条件的第一个文档
    collection.deleteOne(Filters.eq("likes", 200));
    //删除所有符合条件的文档
    collection.deleteMany(Filters.eq("likes", 200));
    //检索查看结果
    FindIterable<Document> findIterable = collection.find();
    MongoCursor<Document> mongoCursor = findIterable.iterator();
    while(mongoCursor.hasNext()){
      System.out.println(mongoCursor.next());
    }
  }

  public static void main( String[] args ) {
    try {
      App app = new App();
      app.delDoc();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

 

参考:http://www.runoob.com/mongodb/mongodb-tutorial.html

转载于:https://www.cnblogs.com/wanshoushou/p/5675996.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值