java操作mongoDB数据库

java操作mongoDB数据库

public class MongoDBTest {

    @Test
    public void mongoDBTest(){
        //连接MongoDB服务
        MongoClient mongoClient = new MongoClient("localhost",27017);
        //连接到MongoDB数据库
        MongoDatabase database = mongoClient.getDatabase("mongo");
        //选择集合
        MongoCollection<Document> collection = database.getCollection("mongo");
        //查询所有文档内容
        FindIterable<Document> documents = collection.find();
        for (Document document : documents) {
            System.out.println(document);
        }
        // 插入文档
       /**
        * 1. 创建文档 org.bson.Document 参数为key-value的格式
        * 2. 创建文档集合List<Document>
        * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>)
        * 插入单个文档可以用 mongoCollection.insertOne(Document)
        */
       Document document = new Document();
       document.append("description", "database").append("likes", 100).append("by", "Fly");
        List<Document> documents1 = new ArrayList<>();
       documents1.add(document);
       collection.insertMany(documents1);

        FindIterable<Document> documents2 = collection.find();
        for (Document document1 : documents2) {
            System.out.println(document1);
        }
        //更新文档
        collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));
        删除符合条件的第一个文档
        collection.deleteOne(Filters.eq("likes", 200));
        // 删除所有符合条件的文档
         collection.deleteMany (Filters.eq("likes", 200));
        // 检索查看结果
        System.out.println("-------------------------------");
        FindIterable<Document> findIterable = collection.find();
         MongoCursor<Document> mongoCursor = findIterable.iterator();
         while(mongoCursor.hasNext()){
         System.out.println(mongoCursor.next());
         }

    }
    //这个方法是对MongoDB数据库的一些数据的具体操作。注释只是为了命名时方便一些
     @Test
    public void selectTest(){

        //连接MongoDB数据库
        MongoClient mongoClient = new MongoClient("localhost",27017);
        //连接到数据库
        MongoDatabase database = mongoClient.getDatabase("mongo");
        //获取集合
        MongoCollection<Document> collection = database.getCollection("list");

        //查询所有数据
//        FindIterable<Document> documents = collection.find();
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查找女歌星
//        FindIterable<Document> documents = collection.find(Filters.eq("sex", "女"));
//        for (Document document : documents) {
//            System.out.println(document);
//        }
        //查找年龄大于53的歌星。
//        FindIterable<Document> documents = collection.find(Filters.gt("age",53));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询年龄小于35岁的歌星。
//        FindIterable<Document> documents = collection.find(Filters.lt("age", 35));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询成绩大于等于95的歌星。
//        FindIterable<Document> documents = collection.find(Filters.gte("score", 95));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询年龄在小于等于32岁的歌星。
//        FindIterable<Document> documents = collection.find(Filters.lte("age", 32));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查找年龄在30-40岁之间的歌星。
//        BasicDBObject basicDBObject = new BasicDBObject();
//        basicDBObject.put("$gt",30);
//        basicDBObject.put("$lt",40);
//        BasicDBObject basicDBObject1 = new BasicDBObject();
//        basicDBObject1.put("age",basicDBObject);
//        FindIterable<Document> documents = collection.find(basicDBObject1);
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询外国歌手。
//        FindIterable<Document> documents = collection.find(Filters.ne("country", "中国"));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询成绩为5 、15、25、。。。。95的歌星。条件相当于key % 10 == 5 即key除以10余数为5的
//        FindIterable<Document> documents = collection.find(Filters.mod("score", 10, 5));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询序号(num)为3或者6或者9的歌星。
//        FindIterable<Document> documents = collection.find(Filters.in("num", "3","6","9"));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询国籍不为美国和韩国的歌手。
//        FindIterable<Document> documents = collection.find(Filters.nin("country", "美国", "韩国"));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

        //查询包含tel字段的数据。
//        FindIterable<Document> documents = collection.find(Filters.exists("name", true));
//        for (Document document : documents) {
//            System.out.println(document);
//        }

//        BasicDBObject basicDBObject = new BasicDBObject();
//        basicDBObject.put("age",55);
//        FindIterable<Document> documents = collection.find(Filters.or(basicDBObject));
//       for (Document document : documents) {
 //           System.out.println(document);
        }
    }
}

mongo实例其实已经是一个现成的连接池了,而且线程安全。这个内置的连接池默认初始了10个连接,每一个操作(增删改查等)都会获取一个连接,执行操作后释放连接。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值