Java Python访问MongoDB

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: Java Python访问MongoDB

1.Java访问MongoDB

pom.xml

代码语言:javascript

复制

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>mongoDB</groupId>
  <artifactId>mongoDB</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
<maven-compiler-plugin-version>3.8.1</maven-compiler-plugin-version>
  </properties>
  
<dependencies>
<dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.12.10</version>
</dependency>
</dependencies>
</project>

Java程序

代码语言:javascript

复制

package mongoDB;
           
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import org.bson.Document;
           
public class MongoDB {
    // MongoDB服务器的连接URI
    public static  String uri = "mongodb://192.168.31.184:27017";
    // 创建MongoClient实例
    public static MongoClientURI clientURI = new MongoClientURI(uri);    
    public MongoClient mongoClient = new MongoClient(clientURI);     
       
    public MongoDatabase connect(String dbname) {
        // 连接成功,可以进行数据库操作
        System.out.println("Connected to MongoDB");
        // 获取数据库实例
        MongoDatabase database = mongoClient.getDatabase(dbname);
        return database;
    }
    
    public void disconnect() {
           // 关闭连接
           this.mongoClient.close();
    }
    
    public MongoCollectiongetCollection(MongoDatabase database,String mycollection) {    
    
        // 获取集合实例
        MongoCollection collection = database.getCollection(mycollection);
        return collection;    
    }
    
    public void insertDocument(String key,String value,MongoCollectioncollection) {
            // 插入文档
        Document document = new Document(key, value)
               .append("age", 40);
               collection.insertOne(document);
    }
    
    public void searchDocument(String key,String value,MongoCollectioncollection) {
    // 查询文档
    Document query = new Document(key, value);
    MongoCursor cursor = collection.find(query).iterator();
    while (cursor.hasNext()) {
           Document result = cursor.next();
           System.out.println(result.toJson());
    }
}
        
    public void ViewAllDocument(MongoCollectioncollection) {
           FindIterable iterable = collection.find();
           for (Document document : iterable) {
                  System.out.println(document.toJson());
           }
    }
    
    public void updateDocument(String key_filter,String value_filter,String key_update,String value_update,MongoCollectioncollection) {
            // 更新文档
        Document filter = new Document(key_filter,value_filter);
        Document update = new Document("$set", new Document(key_update,value_update));
        collection.updateOne(filter, update);
    }
    
    public void updateDocument(String key_filter,String value_filter,String key_update,int value_update,MongoCollectioncollection) {
           // 更新文档    
       Document filter = new Document(key_filter,value_filter);
       Document update = new Document("$set", new Document(key_update,value_update));
       collection.updateOne(filter, update);
   }
    
    
    public void deleteDocument(String key,String value,MongoCollectioncollection) {
        // 删除文档
           Document filter = new Document(key, value);
           collection.deleteOne(filter);
    }
    
    public static void main(String[] args) {
           MongoDB mdb = new MongoDB();
           MongoDatabase database = mdb.connect("admin");
           MongoCollection collection = mdb.getCollection(database,"person");
           System.out.println("显示全部");
           mdb.ViewAllDocument(collection);
           System.out.println("显示一条");    
           mdb.searchDocument("name","Jerry",collection);
           mdb.insertDocument("name","Jhon",collection);
           System.out.println("插入一条Jhon");
           mdb.ViewAllDocument(collection);
           mdb.updateDocument("name","Jhon","age",19,collection);
           System.out.println("修改Jhon,修改年龄为19");
           mdb.ViewAllDocument(collection);
           mdb.deleteDocument("name","Jhon",collection);
           System.out.println("删除一条Jhon");
           mdb.ViewAllDocument(collection);
     mdb.disconnect();
    }
}

输出

代码语言:javascript

复制

{"_id": {"$oid": "66d7de35f5f38e175c5e739c"}, "name": "Jerry", "age": 28}
{"_id": {"$oid": "66d7decaf5f38e175c5e739d"}, "name": "Tom", "age": 37}
{"_id": {"$oid": "66d7df39f5f38e175c5e739e"}, "name": "Cindy", "age": 43}
{"_id": {"$oid": "66d7df39f5f38e175c5e739f"}, "name": "Linda", "age": 21}    
{"_id": {"$oid": "66d7df39f5f38e175c5e73a0"}, "name": "Jessca", "age": 34}
{"_id": {"$oid": "66d7de35f5f38e175c5e739d"}, "name": "Jerry", "age": 24}
显示一条
{"_id": {"$oid": "66d7de35f5f38e175c5e739c"}, "name": "Jerry", "age": 28}
{"_id": {"$oid": "66d7de35f5f38e175c5e739d"}, "name": "Jerry", "age": 24}
插入一条Jhon
{"_id": {"$oid": "66d7de35f5f38e175c5e739c"}, "name": "Jerry", "age": 28}
{"_id": {"$oid": "66d7decaf5f38e175c5e739d"}, "name": "Tom", "age": 37}
{"_id": {"$oid": "66d7df39f5f38e175c5e739e"}, "name": "Cindy", "age": 43}
{"_id": {"$oid": "66d7df39f5f38e175c5e739f"}, "name": "Linda", "age": 21}
{"_id": {"$oid": "66d7df39f5f38e175c5e73a0"}, "name": "Jessca", "age": 34}
{"_id": {"$oid": "66d7de35f5f38e175c5e739d"}, "name": "Jerry", "age": 24}    
{"_id": {"$oid": "66d9583818f1fa75230235a8"}, "name": "Jhon", "age": 40}
修改Jhon,添加年龄
{"_id": {"$oid": "66d7de35f5f38e175c5e739c"}, "name": "Jerry", "age": 28}
{"_id": {"$oid": "66d7decaf5f38e175c5e739d"}, "name": "Tom", "age": 37}
{"_id": {"$oid": "66d7df39f5f38e175c5e739e"}, "name": "Cindy", "age": 43}
{"_id": {"$oid": "66d7df39f5f38e175c5e739f"}, "name": "Linda", "age": 21}
{"_id": {"$oid": "66d7df39f5f38e175c5e73a0"}, "name": "Jessca", "age": 34}
{"_id": {"$oid": "66d7de35f5f38e175c5e739d"}, "name": "Jerry", "age": 24}
{"_id": {"$oid": "66d9583818f1fa75230235a8"}, "name": "Jhon", "age": 19}
删除一条Jhon
{"_id": {"$oid": "66d7de35f5f38e175c5e739c"}, "name": "Jerry", "age": 28}
{"_id": {"$oid": "66d7decaf5f38e175c5e739d"}, "name": "Tom", "age": 37}    
{"_id": {"$oid": "66d7df39f5f38e175c5e739e"}, "name": "Cindy", "age": 43}
{"_id": {"$oid": "66d7df39f5f38e175c5e739f"}, "name": "Linda", "age": 21}
{"_id": {"$oid": "66d7df39f5f38e175c5e73a0"}, "name": "Jessca", "age": 34}
{"_id": {"$oid": "66d7de35f5f38e175c5e739d"}, "name": "Jerry", "age": 24}

2.Python访问MongoDB

代码语言:javascript

复制

pip install pymongo

代码

代码语言:javascript

复制

from pymongo import MongoClient
 
# 连接到MongoDB实例
client = MongoClient('mongodb://192.168.31.184:27017/')
 
# 选择数据库
db = client['admin']
 
# 选择集合(类似于SQL中的表)
collection = db['person']
     
# 插入文档(类似于SQL中的记录)
#collection.insert_one({'name': 'Alice', 'age': 25})
 
# 查询文档
result = collection.find_one({'name': 'Jerry'})
print(result)
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
14天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
30 3
|
16天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
34 2
|
22天前
|
NoSQL Java 数据库连接
MongoDB Java
10月更文挑战第18天
16 3
|
26天前
|
Java
Java访问外网图片地址时,如何添加代理?
【10月更文挑战第14天】Java访问外网图片地址时,如何添加代理?
22 2
|
5天前
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。
|
1月前
|
存储 JSON NoSQL
Java 中MongoDB的使用
Java 中MongoDB的使用
14 2
|
1月前
|
小程序 JavaScript Java
小程序访问java后台
小程序访问java后台
27 1
|
1月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
25 0
|
1月前
|
安全 Java Python
基于python-django的Java网站全站漏洞检测系统
基于python-django的Java网站全站漏洞检测系统
32 0