Java操作MongoDB

本文介绍了mongo官方推出的java连接MongoDB的驱动包mongodb - driver,相当于JDBC驱动。通过入门案例展示其基本使用,包括查询全部记录、条件查询(如查询特定userid、特定浏览量的记录)以及插入数据等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb-driver

mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。
我们通过一个入门的案例来了解mongodb-driver的基本使用

查询全部记录

创建工程 mongoDemo, 引入依赖

<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies>

创建测试类


/**
* MongoDb入门小demo
*/
public class MongoDemo {
public static void main(String[] args) {
MongoClient client=new MongoClient("192.168.184.134");//创建连接
MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库
MongoCollection spit = spitdb.getCollection("spit");//
获取集合
FindIterable documents = spit.find();//查询记录获取文档集
合
for(Document document:documents){ //
System.out.println("内容:"+ document.getString("content"));
System.out.println("用户ID:"+document.getString("userid"));
System.out.println("浏览量:"+document.getInteger("visits"));
}
client.close();//关闭连接
}
}

条件查询

BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,是keyvalue的数据结构,用起来和HashMap是基本一致的。

(1)查询userid为1013的记录


public class MongoDemo1 {
public static void main(String[] args) {
MongoClient client=new MongoClient("192.168.184.134");//创建连接
MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库
MongoCollection spit = spitdb.getCollection("spit");//
获取集合
BasicDBObject bson=new BasicDBObject("userid","1013");// 构建查询
条件
FindIterable documents = spit.find(bson);//查询记录获取结
果集合
for(Document document:documents){ //
System.out.println("内容:"+ document.getString("content"));
System.out.println("用户ID:"+document.getString("userid"));
System.out.println("浏览量:"+document.getInteger("visits"));
}
client.close();//关闭连接
}
}

(2)查询浏览量大于1000的记录


public class MongoDemo2 {
public static void main(String[] args) {
MongoClient client=new MongoClient("192.168.184.134");//创建连接
MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库
MongoCollection spit = spitdb.getCollection("spit");//
获取集合
BasicDBObject bson=new BasicDBObject("visits",new
BasicDBObject("$gt",1000) );// 构建查询条件
FindIterable documents = spit.find(bson);//查询记录获取结
果集合
for(Document document:documents){ //
System.out.println("内容:"+ document.getString("content"));
System.out.println("用户ID:"+document.getString("userid"));
System.out.println("浏览量:"+document.getInteger("visits"));
}
client.close();//关闭连接
}
}

插入数据


public class MongoDemo3 {
public static void main(String[] args) {
MongoClient client=new MongoClient("192.168.184.134");//创建连接
MongoDatabase spitdb = client.getDatabase("spitdb");//打开数据库
MongoCollection spit = spitdb.getCollection("spit");//
获取集合
Map<String,Object> map=new HashMap();
map.put("content","我要吐槽");
map.put("userid","9999");
map.put("visits",123);
map.put("publishtime",new Date());
Document document=new Document(map);
spit.insertOne(document);//插入数据
client.close();
}
}

### Java 操作 MongoDB 的基础 为了实现对MongoDB操作,在Java程序中通常会引入`mongodb-driver-sync`库。此库提供了同步驱动器,允许开发者执行基本的CRUD操作以及更复杂的查询。 #### 创建连接并获取数据库实例 建立与MongoDB服务器的连接是任何交互的第一步。这可以通过`MongoClients.create()`方法完成,该方法返回一个表示客户端连接的对象。对于本地运行的服务,默认情况下监听27017端口[^2]: ```java import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; // 创建一个新的 MongoClient 实例用于连接默认地址 (localhost) 和端口 (27017) MongoClient mongoClient = MongoClients.create(); ``` 接着可以利用获得的客户端对象调用`getDatabase(String dbName)`函数来选定特定名称下的数据库作为工作区: ```java com.mongodb.client.MongoDatabase database = mongoClient.getDatabase("test"); ``` #### 执行 CRUD 操作 ##### 插入文档 向集合内添加新记录涉及构建BSON格式的数据结构并通过适当的方法提交给目标集合。下面的例子展示了怎样往名为“users”的集合里加入一条新的用户信息[^3]: ```java import org.bson.Document; public void insertUser() { Document userDoc = new Document("name", "Alice").append("age", 30); database.getCollection("users").insertOne(userDoc); } ``` ##### 查询文档 检索已存数据同样依赖于Document类定义条件表达式,并传递至find()或findOneAndDelete()等查找接口。这里给出一段简单的代码片段用来展示如何读取所有用户的姓名列表: ```java for (Document doc : database.getCollection("users").find()) { System.out.println(doc.getString("name")); } ``` ##### 更新现有条目 当需要修改某些字段的内容时,则应该准备更新指令连同匹配模式一起交给updateMany()或者replaceOne()这样的命令处理。下述例子说明了更改年龄大于等于30岁的所有人职业为工程师的过程[^5]: ```java database.getCollection("users") .updateMany( Filters.gte("age", 30), Updates.set("job", "engineer") ); ``` ##### 删除指定项 最后如果想要移除符合条件的一条或多条记录,可借助deleteOne()或是deleteMany()来进行相应设置。比如删除名字叫Bob的所有条目的方式如下所示: ```java database.getCollection("users").deleteMany(new Document("name", "Bob")); ``` 以上就是关于使用Java语言控制MongoDB的一些基础知识和技术要点概述[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值