JAVA如何操作MongoDB数据库

前言:

mongodb是一个基于分布式文件存储的开源数据库系统。

mongodb与我们平常使用的mysql的区别:

   1.MySQL以表结构存储数据,mongodb以类JSON的文档的格式存储

   2.MySQL支持表联查,mongodb不支持表联查。

   3.MySQL是关系型数据库,而mongodb是非关系型数据库

   4.MySQL可以支持事务,外键等,而mongodb不支持

mysql中的概念MongoDB中的概念解释
tablecollention表/集合
rowdocument行/文档
columnfield字段
indexindex索引
primary keyprimary key主键,mongo中每个documentdou默认有_id字段为主键


一.java链接mongodb

1.导入mongodb驱动包

2.创建链接对象

MongoClient mongoclient=new MongoClient("127.0.0.1",27017);

3.释放资源

mongoclient.close();

二.查看数据库的所有库和集合

1.查看所有库名

//获取链接对象,参数1为url,参数2为端口号
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//获取所有库名的迭代器
MongoIterable<String> list= mongoclient.listDatebaseNames();
for(String str:list){
    System.out.println(str);//查看所有库名
}

2.查看所有集合名

//获取链接对象,参数1为url,参数2为端口号
MongoClient mongoclient=new MongoClient("127.0.0.1",27017);
//获取库对象,参数为库名
MongoDatabase db=mongoclient.getDatabase("school");
//获取当前库对象的所有集合名的迭代器
MongoIterable<String> list=db.getlistCollectionNames();
for(String str:list){
    System.out.println(str);//获取所有集合名
}
//获取集合对象,参数为集合名
MongoCollention<Document> collection=db.getCollection("student");

三.对数据库进行增删改查

1.新增数据

//获取集合对象
MongoCollection<Document> collection = db.getCollection("student");
//新增时创建一个Docuement对象,以键值对的形式传入内容
Document document = new Document();
document.put("name", "张三");
document.put("age", 99);
document.put("sex", "男");
//添加一条数据,没有返回值
collection.insertOne(document);
//新增多条数据,传入一个document集合
collection.insertMany(null);

Filters类(过滤器) 

        删除,修改,查询时传入的筛选条件

        举例: Bson eq=Filters.eq("name","张三");

Filters.eq()等值
Filters.gt()大于指定值(gte大于等于)
Filters.lt()小于指定值(lte小于等于)
Filters.ne()不等于指定
Filters.nin()不等于数组中的值
Filters.and()传入多个Bson对象,and连接
Filters.regex()模糊查询
Filters.exists()存在改字段

2.修改数据


//修改条件
Bson eq = Filters.eq("name","张三");
//修改匹配到的第一条
UpdateResult updateOne = collection.updateOne(
	eq, new Document("$set",new Document("age",50)));
//修改匹配的多条
collection.updateMany(eq, null);

修改的返回值内容

AcknowledgedUpdateResult{matchedCount=0, modifiedCount=0, upsertedId=null}

matchedCount:代表匹配到的文档数

modifiedCount:代表被修改的文档数

upsertedId:代表修改的文档id(主键)

3.数据删除

//条件
Bson eq = Filters.eq("name","张三");
//删除一条符合的
DeleteResult deleteOne = collection.deleteOne(eq);
//删除 所有符合条件的
DeleteResult deleteMany = collection.deleteMany(eq);

删除的返回值内容

AcknowledgedDeleteResult{deletedCount=0}

deletedCount:被删除的文档数

4.查询数据

//无条件全查
FindIterable<Document> find = collection.find();
//带条件查询
Bson eq = Filters.regex("name", "张");
FindIterable<Document> find = collection.find(eq);

查询的结果集映射

 这种解析方式我们必须知道文档中的各个字段名

//全查
FindIterable<Document> find = collection.find();

//创建一个实体类集合准备接收结果
List<Student>  slist = new ArrayList<Student>();
//获取结果集迭代器对象	
MongoCursor<Document> iterator = find.iterator();

while(iterator.hasNext()) {
	Student s =  new Student();
			
	Document next = iterator.next();
	s.setSname(next.getString("name"));
	s.setSsex(next.getString("sex"));
	s.setSid(next.getInteger("sid"));	
    
    //将结果添加至实体类集合
	slist.add(s);
}

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些基本的 Java 操作 MongoDB 数据库的代码示例。 首先,您需要使用 Java 驱动程序来连接 MongoDB 数据库。您可以通过 Maven 或 Gradle 将驱动程序添加为依赖项。这里是一个 Maven 的例子: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> ``` 然后,您需要创建一个 MongoClient 对象,该对象代表与 MongoDB 实例的连接。以下是创建 MongoClient 的示例代码: ```java import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; public class MongoDBConnector { private MongoClient mongoClient; public MongoDBConnector() { MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017"); mongoClient = new MongoClient(uri); } public MongoClient getMongoClient() { return mongoClient; } } ``` 在上面的代码中,我们创建了一个名为 MongoDBConnector 的类,它包含一个名为 mongoClient 的 MongoClient 对象。在构造函数中,我们使用 MongoClientURI 对象指定 MongoDB 实例的连接字符串,并使用该字符串创建 MongoClient 对象。最后,我们提供了一个 getMongoClient 方法,以便在其他类中访问 MongoClient 对象。 接下来,您可以使用 MongoClient 对象来获取对特定数据库的访问权限。以下是获取对名为 educoder 的数据库的访问权限的示例代码: ```java import com.mongodb.client.MongoDatabase; public class MongoDBConnector { // ... public MongoDatabase getDatabase() { return mongoClient.getDatabase("educoder"); } } ``` 在上面的代码中,我们提供了一个 getDatabase 方法,该方法返回名为 educoder 的数据库的 MongoDatabase 对象。您可以使用 MongoDatabase 对象来执行各种操作,例如插入、查询和更新文档。 以下是向名为 educoder 的 users 集合中插入一个文档的示例代码: ```java import org.bson.Document; import com.mongodb.client.MongoCollection; public class MongoDBConnector { // ... public void insertDocument() { MongoCollection<Document> collection = getDatabase().getCollection("users"); Document document = new Document("name", "John Doe") .append("age", 30) .append("email", "[email protected]"); collection.insertOne(document); } } ``` 在上面的代码中,我们获取了名为 users 的集合的 MongoCollection 对象,并创建了一个包含 name、age 和 email 字段的 Document 对象。最后,我们调用 insertOne 方法将文档插入集合中。 以上是一些基本的 Java 操作 MongoDB 数据库的代码示例。您可以进一步研究 MongoDB Java 驱动程序文档,以了解更多操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值