Java实现MongoDB的简单增删改查

本文展示了如何使用Java实现MongoDB的基本操作,包括连接数据库、创建表、插入数据、查询数据、删除数据以及更新数据。通过示例代码详细解释了各种操作的实现步骤,涵盖了增删改查的全部功能。

Java实现MongoDB的简单增删改查

现有一个mongodb的测试表格,内容如下:
在这里插入图片描述

根据该表做一个简单的增删改查,具体实现代码如下:

import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Filter;


public class MongoTest {
    public static void main(String[] args) {
        String mongohost="192.168.146.222";
        int mongoPort=27017;
        MongoClient mongoClient = new MongoClient(mongohost, mongoPort);
        MongoDatabase db = mongoClient.getDatabase("test");
        System.out.println(db);

//       auth   针对mongodb存在用户名和密码验证的情况下,用下列方法进行访问
//        ServerAddress serverAddress = new ServerAddress("192.168.146.222", 27017);
//        ArrayList<ServerAddress> addrs = new ArrayList<>();
//        addrs.add(serverAddress);
//
//        MongoCredential scramSha1Credential = MongoCredential.createScramSha1Credential("kgcuser", "kgcdsj", "123456".toCharArray());
//        ArrayList<MongoCredential> credentials = new ArrayList<>();
//        credentials.add(scramSha1Credential);
//        MongoClient mongoClient1 = new MongoClient(addrs, credentials);
//        MongoDatabase db = mongoClient1.getDatabase("kgcdsj");

        //查看库中的表名    相当于show collections
//        MongoIterable<String> tables = db.listCollectionNames();
//        for (String table : tables) {
//            System.out.println(table);
//        }

        //删库
//        db.drop();

        //删表
//        db.getCollection("students").drop();

        //创建表
//        db.createCollection();

        HashMap<String, Object> map = new HashMap<>();
        map.put("_id","1");
        map.put("title","aa");
        map.put("content","good");
        map.put("readNum",26);
        Document document = new Document(map);
//        db.getCollection("students").insertOne(document);
//        System.out.println("插入一条数据");

        //插入多条数据
//        Document stu1 = new Document();
//        stu1.append("_id","1").append("title","aa")
//                .append("content","good").append("readNum",21)
//                .append("name","a1").append("userid","0001")
//                .append("nick","gree");
//        Document stu2 = new Document();
//        stu2.append("_id","2").append("title","bb")
//                .append("content","hi").append("readNum",28)
//                .append("name","b1").append("userid","0002")
//                .append("nick","ant");
//        Document stu3 = new Document();
//        stu3.append("_id","3").append("title","cc")
//                .append("content","ok").append("readNum",27)
//                .append("name","c1").append("userid","0003")
//                .append("nick","plan");
//        Document stu4 = new Document();
//        stu4.append("_id","4").append("title","dd")
//                .append("content","no").append("readNum",29)
//                .append("name","a1").append("userid","0001")
//                .append("nick","gree");
//        Document stu5 = new Document();
//        stu5.append("_id","5").append("title","ee")
//                .append("content","yes").append("readNum",22)
//                .append("name","e1").append("userid","0004")
//                .append("nick","dog");
//
//        List<Document> stus = new ArrayList<>();
//        stus.add(stu1);
//        stus.add(stu2);
//        stus.add(stu3);
//        stus.add(stu4);
//        stus.add(stu5);
//
//        db.getCollection("students").insertMany(stus);

        //查询符合条件的数据
//        FindIterable<Document> documents = db.getCollection("students").find(Filters.eq("name", "a1"));
//        for (Document doc : documents) {
//            System.out.println(doc);
//        }

        //查询指定列数据
//        BasicDBObject basicDBObject = new BasicDBObject();
//        basicDBObject.append("title",1);
//        basicDBObject.append("_id",0);
//        FindIterable<Document> students = db.getCollection("students").find().projection(basicDBObject);
//        for (Document student : students) {
//            System.out.println(student);
//        }

        //// 删除指定主键
        //db.getCollection("students").deleteOne(Filters.eq("_id",1));

       // 删除指定列内容为a1
       //db.getCollection("students").deleteMany(Filters.eq("name","a1"));

        // 查询前两条
//        FindIterable<Document> limit = db.getCollection("students").find().limit(2);
//        for (Document document : limit) {
//            System.out.println(document);
//        }

        // 跨越两条,查询第三四条数据
//        FindIterable<Document> skip = db.getCollection("students").find().limit(2).skip(2);
//        for (Document document : skip) {
//            System.out.println(document);
//        }

        //排序 按readNum升序或降序
//        BasicDBObject basicDBObject = new BasicDBObject();
//        basicDBObject.append("readNum",1);   //   1 为升序, -1 为降序
//        FindIterable<Document> students = db.getCollection("students").find().sort(basicDBObject);
//        for (Document student : students) {
//            System.out.println(student);
//        }

        //查询 阅读量排名前三 作者名字
//        BasicDBObject basicDBObject1 = new BasicDBObject();
//        BasicDBObject basicDBObject2 = new BasicDBObject();
//        basicDBObject1.append("name",1);
//        basicDBObject1.append("readNum",1);
//        basicDBObject2.append("readNum",-1);
//        FindIterable<Document> students = db.getCollection("students")
//                .find().projection(basicDBObject1).sort(basicDBObject2).limit(3);
//        for (Document student : students) {
//            System.out.println(student);
//        }

        //阅读量大于25的信息
//        FindIterable<Document> documents = db.getCollection("students").find(Filters.gt("readNum", 25));
//        for (Document document1 : documents) {
//            System.out.println(document1);
//        }

        // 阅读量在25 到 30间的信息
//        FindIterable<Document> documents = db.getCollection("students")
//                .find(Filters.and(Filters.gt("readNum", 25), Filters.lt("readNum", 30)));
//        for (Document dt : documents) {
//            System.out.println(dt);
//        }

        //userid为0001,0002的信息
//        FindIterable<Document> documents = db.getCollection("students").find(Filters.in("userid", "0001", "0002"));
//        for (Document document1 : documents) {
//            System.out.println(document1);
//        }

        //修改一条
//        Document document1 = new Document();
//        document1.append("name","aa");
//        db.getCollection("students").updateOne(Filters.eq("_id", 1), document1);

        //修改多条
//        Document document1 = new Document();
//        document1.append("nick","lilei");
//        db.getCollection("students").updateMany(Filters.eq("nick","gree"),document1);

    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值