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

MongoDB(java操作)

2017-08-06 12:58 363 查看

一、 准备工作

MongoDB与java连接需要相应驱动,可用maven添加相应依赖:

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


或者自行下载添加至构建路径即可:mongodb驱动

二、 java操作数据库

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

import org.bson.Document;

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;

public class Test {

static MongoDatabase db = null;
static MongoClient mongoClient = null;

public static void main(String[] args) {
try {
db = Connect("mydb");
find("mycol");
insert("mycol");
find("mycol");
} catch (Exception e) {
e.printStackTrace();
}finally {
mongoClient.close();
}
}

/**
* 获得与数据库的连接
* @param dbName
* @return
* @throws Exception
*/
public static MongoDatabase Connect(String dbName) throws Exception{
try {
//启用Mongo客户端访问MongoDB服务
mongoClient = new MongoClient("localhost", 27017);
//连接到相应数据库
MongoDatabase db = mongoClient.getDatabase(dbName);
System.out.println("connect successfully");
return db;
} catch (Exception e) {
throw new Exception();
}
}

/**
* 向数据库当中插入文档
* @param collectionName
*/
public static void insert(String collectionName){
MongoCollection<Document> collection = db.getCollection(collectionName);
/*
* 创建org.bson.Document 参数为key-value键值对
* 创建文档集合List
* 将文档集合插入数据库当中
* insertMany(List)可以插入多个文档
* insertOne(Document)可以插入一个文档
*/
Document document = new Document("title", "Mondbnew").
append("description", "database").
append("likes", 100).
append("by", "super");
List<Document> list = new ArrayList<>();
list.add(document);
collection.insertMany(list);
System.out.println("insert successfuly");
}

/**
* 检索数据库当中文档
* @param collectionName
*/
public static void find(String collectionName){
MongoCollection<Document> collection = db.getCollection(collectionName);
/*
* 获取迭代器
* 通过迭代器获取游标
* 通过游标遍历文档
*/
FindIterable<Document> findIterable = collection.find();
MongoCursor<Document> cursor = findIterable.iterator();
while(cursor.hasNext()){
System.out.println(cursor.next());
}
}

/**
* 更新文档
* @param collectionName
*/
public static void update(String collectionName){
MongoCollection<Document> collection = db.getCollection(collectionName);
//更新文档 将原likes:100修改为likes:200
collection.updateMany(Filters.eq("likes", 100), new Document("$set", new Document("likes", 200)));
System.out.println("update successfly");
}

/**
* 删除文档
* @param collectionName
*/
public static void remove(String collectionName){
MongoCollection<Document> collection = db.getCollection(collectionName);
//删除符合条件的第一个文档
collection.deleteOne(Filters.eq("likes", 200));
//删除符合条件的第二个文档
collection.deleteMany(Filters.eq("likes", 200));

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