Java API 操作 Mongodb

本次测试环境使用一台ip为 192.168.2.23 的虚拟机

一、依赖

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

二、编码

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.bson.Document;
import org.junit.Test;
import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;

public class MongodbTest {

	@Test
	public void testConnection() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");
		// 打印数据库名称
		System.out.println(database.getName());
	}

	@Test
	public void testCreateCollection() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");

		MongoCollection<Document> collection = database.getCollection("article");
		System.out.println("创建集合成功!!"); // 注意,如果不插入数据,该库会自动被删除

		// System.out.println("当前数据库中的所有集合是:");
		// MongoIterable<String> listCollectionNames = database
		// .listCollectionNames();
		// for (String name : listCollectionNames) {
		// System.out.println(name);
		// }

	}

	@Test
	public void testInsert() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");
		// 获取指定集合
		MongoCollection<Document> collection = database.getCollection("article");
		// 创建文档
		Document doc = new Document("_id", 1).append("title", "first article")
				.append("content", "hello world").append("author", "Jack")
				.append("createDate", new Date());
		// 保存文档
		collection.insertOne(doc);

		Document temp = null;
		List<Document> list = new ArrayList<Document>();
		for (int i = 2; i < 6; i++) {
			temp = new Document("_id", i).append("title", "first article" + i)
					.append("content", "hello world" + i)
					.append("author", "Jack").append("createDate", new Date());

			list.add(temp);
		}
		// 保存多个文档
		collection.insertMany(list);
	}

	@Test
	public void testUpdate() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");
		// 获取指定集合
		MongoCollection<Document> collection = database.getCollection("article");
		// 更新指定文档
		collection.updateOne(Filters.eq("_id", 1), new Document("$set",new Document("title", "article1")));
	}

	@Test
	public void testDelete() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");
		// 获取指定集合
		MongoCollection<Document> collection = database.getCollection("article");
		// 删除id为5的文档
		collection.deleteOne(Filters.eq("_id", 5));

	}

	@Test
	public void testQuery() {
		// 建立连接
		MongoClient mongoClient = new MongoClient("192.168.2.23", 27017);
		// 获取指定数据库
		MongoDatabase database = mongoClient.getDatabase("test");
		// 获取指定集合
		MongoCollection<Document> collection = database.getCollection("article");
		// 遍历查询到的数据
		collection.find().forEach(new Block<Document>() {

			public void apply(Document doc) {
				System.out.println(doc.toJson());
			}

		});
	}
}

posted @ 2017-09-11 17:52  关小西  阅读(466)  评论(0编辑  收藏  举报