MongoDB 通过 Maven 用 Java API 进行增删改查

本文档介绍了如何通过Java API结合Maven,在MongoDB中进行增删改查操作。首先展示了实现这些操作的源码,接着详细列出了pom.xml文件的配置内容。

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

1. 源码

/**
 * App.java
 */
package com.jiecxy;

import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;

import java.util.ArrayList;
import java.util.List;

public class App 
{
    public static void main( String[] args )
    {
        // 连接到 mongodb 服务
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        String DB_NAME = "mydb";
        String DB_COL = "mycol";
        // 显示所有数据库名字
        mongoClient.listDatabaseNames().forEach((Block<String>) name -> {
                System.out.println("DB_NAME: " + name);
                if (name.equals(DB_NAME)) {
                    mongoClient.dropDatabase(DB_NAME);
                    System.out.println("DB " + name + " DROPPED ======================");
                }
        });

        // 连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase(DB_NAME);

        // 创建集合
        mongoDatabase.createCollection(DB_COL);

        // 获取集合
        MongoCollection mongoCollection = mongoDatabase.getCollection(DB_COL);

        //插入文档
        Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100);
        List<Document> documents = new ArrayList<>();
        documents.add(document);
        documents.add(new Document("title", "HBase").append("description", "database2").append("likes", 90));
        documents.add(new Document("title", "Redis").append("description", "database3").append("likes", 80));
        mongoCollection.insertMany(documents);

        // 更新文档
        mongoCollection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));

        // 删除符合条件的第一个文档
        mongoCollection.deleteOne(Filters.eq("likes", 80));
        // 删除所有符合条件的文档
//        mongoCollection.deleteMany (Filters.eq("likes", 80));

        System.out.println("\nShow the documents .......................");

        // 查看所有文档
        mongoCollection.find().forEach(((Block<Document>) doc -> System.out.println(doc)));

        // OR view collections like this way
//        FindIterable<Document> findIterable = mongoCollection.find();
//        MongoCursor<Document> mongoCursor = findIterable.iterator();
//        while(mongoCursor.hasNext()){
//            System.out.println(mongoCursor.next());
//        }

        mongoClient.close();
    }
}

运行结果:
这里写图片描述

2. pom.xml文件配置

注意:
    1. 使用shade方式防止打包失败
    2. 这里的dependency只需引用 `mongo-java-driver`
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.jiecxy</groupId>
  <artifactId>MongoDBTest</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <name>MongoDBTest</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.0.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <!-- Run shade goal on package phase -->
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <!-- Do not copy the signatures in the META-INF folder.
                                    Otherwise, this might cause SecurityExceptions when using the JAR. -->
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>

                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.jiecxy.App</mainClass>
                                </transformer>
                            </transformers>

                            <createDependencyReducedPom>false</createDependencyReducedPom>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值