Java中使用MongoDB

public class MongoDBJDBC {
    public static void main(String[] args) {
        //连接到MongoDB服务
        MongoClient mongoClient = new MongoClient("localhost",27017);
        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        System.out.println(mongoDatabase);
        System.out.println("数据库连接成功-----------------------------------");

        //创建集合
        mongoDatabase.createCollection("javaCol");
        System.out.println("javaCol集合创建成功------------------------------");

        //选择集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("javaCol");
        System.out.println("javaCol集合选择成功----------------------------------");

        //插入文档
        Document document = new Document("title","MongoDB Java").
        append("description","正在学习Java中使用MongoDB").
        append("by","hedanning").
        append("likes","666");
        collection.insertOne(document);
        System.out.println("插入单个文档-----------------------------------------");

        //批量插入文档
        Document document1 = new Document("title","MongoDB Java").
        append("description","正在学习Java中使用MongoDB_1").
        append("by","hedanning").
        append("likes","88");
        Document document2 = new Document("title","MongoDB Java").
        append("description","正在学习Java中使用MongoDB_2").
        append("by","hedanning").
        append("likes","999");
        List<Document> documents = new ArrayList<Document>();
        documents.add(document1);
        documents.add(document2);
        collection.insertMany(documents);
        System.out.println("插入批量文档------------------------------------------");

        //检索所有文档
        /*
        * 1.获取迭代器findIterable
        * 2.获取游标mongoCursor
        * 3.通过游标遍历检索出来的文档集合
        * */
        FindIterable<Document> findIterable = collection.find();
        MongoCursor<Document> mongoCursor = findIterable.iterator();
        while(mongoCursor.hasNext()){
            System.out.println(mongoCursor.next());
        }
        System.out.println("检索文档-----------------------------------------------");

        //更新文档(单个)
        collection.updateOne(Filters.eq("likes","666"),new Document("$set",new Document("likes","000")));
        FindIterable<Document> findIterableUpdate = collection.find();
        MongoCursor<Document> mongoCursorUpdate = findIterableUpdate.iterator();
        while(mongoCursorUpdate.hasNext()){
            System.out.println(mongoCursorUpdate.next());
        }
        System.out.println("更新单个文档-------------------------------------------");

        //更新文档(批量)
        collection.updateMany(Filters.gte("likes","88"), new Document("$set",new Document("likes","111")));
        FindIterable<Document> findIterableBatchUpdate = collection.find();
        MongoCursor<Document> mongoCursorBatchUpdate = findIterableBatchUpdate.iterator();
        while(mongoCursorBatchUpdate.hasNext()){
            System.out.println(mongoCursorBatchUpdate.next());
        }
        System.out.println("更新多个文档-------------------------------------------");

        //删除文档(删除符合条件的第一个文档)
        collection.deleteOne(Filters.eq("likes","111"));
        FindIterable<Document> findIterableDelete = collection.find();
        MongoCursor<Document> mongoCursorDelete = findIterableDelete.iterator();
        while(mongoCursorDelete.hasNext()){
            System.out.println(mongoCursorDelete.next());
        }
        System.out.println("删除符合条件的第一个文档---------------------------------");

        //删除文档(删除符合条件的所有文档)
        collection.deleteMany(Filters.eq("likes","000"));
        FindIterable<Document> findIterableBatchDelete = collection.find();
        MongoCursor<Document> mongoCursorBatchDelete = findIterableBatchDelete.iterator();
        while(mongoCursorBatchDelete.hasNext()){
            System.out.println(mongoCursorBatchDelete.next());
        }
        System.out.println("删除符合条件的所有文档------------------------------------");

        //查看数据库列表
        for (String db:mongoClient.listDatabaseNames()) {
            System.out.println(db);
        }
        System.out.println("查看数据库列表--------------------------");

        //查看某个数据库的集合列表
        for (String col:mongoDatabase.listCollectionNames()) {
            System.out.println(col);
        }
        System.out.println("查询test数据库的集合列表-----------------");


    }
}

以上代码的运行结果如下:

 

### Java MongoDB 批量插入操作指南 批量插入操作能够显著提高数据插入效率,在处理大量数据时尤为有用。通过MongoDB官方提供的Java驱动程序,`insertMany`方法允许一次性向集合中插入多个文档。 #### 准备工作 确保存在一个正在运行的MongoDB实例,默认情况下监听于`localhost:27017`端口,并且目标数据库名为`testdb`。依据具体环境调整连接字符串及其他必要参数,同时确认应用具备足够的权限来进行所需的操作[^3]。 #### 示例代码 下面是一个简单的Java程序片段展示如何利用MongoDB Java驱动实现多条记录的同时写入: ```java import com.mongodb.client.MongoClients; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoCollection; import org.bson.Document; import java.util.ArrayList; import java.util.List; public class BulkInsertExample { public static void main(String[] args) { try (MongoClient mongoClient = MongoClients.create("mongodb://admin123:123@localhost:27017")) { MongoDatabase database = mongoClient.getDatabase("testdb"); MongoCollection<Document> collection = database.getCollection("users"); List<Document> documents = new ArrayList<>(); // 添加要插入的数据到列表中 for(int i=0; i<100; ++i){ Document doc = new Document("username", "user"+i) .append("email", "user"+i+"@example.com") .append("age", 25+i); documents.add(doc); } // 调用 insertMany 方法完成批量插入动作 collection.insertMany(documents); System.out.println("成功插入了 "+documents.size()+" 条记录!"); } catch(Exception e){ e.printStackTrace(); } } } ``` 此段代码展示了怎样建立与MongoDB服务器之间的会话,定义待插入的对象数组,最后调用`insertMany()`函数执行实际的数据加载过程[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值