您的位置:首页 > 数据库 > Mongodb

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

2017-09-29 14:53 357 查看

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: