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

MongoDB增删改查

2016-03-03 16:32 369 查看
package com.founder.mongo2bean;

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

import org.bson.Document;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.Block;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.BulkWriteOptions;
import com.mongodb.client.model.DeleteOneModel;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.ReplaceOneModel;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

public class Main {
/**
* mongo客户端
*/
private MongoClient mongoClient =null;
/**
* 数据库
*/
private MongoDatabase database = null;
/**
* 集合
*/
private MongoCollection<Document> collection = null;
@Before
public void init(){
//获取连接
mongoClient = new MongoClient("localhost",27017);
//获取数据库
database = mongoClient.getDatabase("test");
//进入某个文档集(大小写敏感)
collection = database.getCollection("Doc");
}

//单条数据插入测试
@Test
public void insertOneTest(){
Document doc =new Document("name","MongoDB")
.append("type", "database").append("count", 1)
.append("info", new Document("x",203).append("y", 102));
collection.insertOne(doc);
}
//多条数据插入测试
@Test
public void insertManyTest(){
List<Document> docs = new ArrayList<Document>();
for(int i=0;i<100;i++){
Document doc =new Document("name","MongoDB"+i)
.append("type", "database").append("count", 1)
.append("i", i)
.append("info", new Document("x",203).append("y", 102));
docs.add(doc);
}
collection.insertMany(docs);
}

/**
* 删除数据
*/
@Test
public void deleteTest(){
//删除所有符合条件的数据
DeleteResult deleteResult =collection.deleteMany(Filters.gte("i", 50));
System.out.println(deleteResult.getDeletedCount());

//删除第一个符合条件的数据
//collection.deleteOne(Filters.eq("i",5));

}

/**
* 修改数据
*/
// 修改时的参数:
// $inc 对指定的元素加
// $mul 乘
// $rename 修改元素名称
// $setOnInsert 如果以前没有这个元素则增加这个元素,否则不作任何更改
// $set 修改制定元素的值
// $unset 移除特定的元素
// $min 如果原始数据更大则不修改,否则修改为指定的值
// $max 与$min相反
// $currentDate 修改为目前的时间
@Test
public void updateTest(){

/* // //修改第一个符合条件的数据
// $set 为修改
collection.updateOne(Filters.eq("i", 10), new Document("$set", new
Document("i", 110)));
// // 获取全部文档,可以看到以前10的地方变成了110
for (Document cur : collection.find()) {
System.out.println(cur.toJson());
}  */

// 批量修改数据并且返回修改的结果,讲所有小于100的结果都加100
UpdateResult updateResult = collection.updateMany(Filters.lt("i", 100),
new Document("$inc", new Document("i", 100)));
// 显示发生变化的行数
System.out.println(updateResult.getModifiedCount());
// // 获取全部文档,可以看到除了刚才修改的110其他的全为了100
for (Document cur : collection.find()) {
System.out.println(cur.toJson());
}

}

//数据读取
@Test
public void QueryTest(){
//获取文档总量
//System.out.println("count:"+collection.count());

//查询集合里面第一个文档
//Document doc = collection.find().first();
//System.out.println("FirstDoc:"+doc.toJson());

//获取集合中所有文档
//游标
/*MongoCursor<Document> cursor = collection.find().iterator();
try{
while(cursor.hasNext()){
System.out.println(cursor.next().toJson());
}
}finally{
cursor.close();
}*/

/*//获取全部文档的其他方法
for(Document cur:collection.find()){
System.out.println("Doc:"+cur.toJson());
}*/
/*Document doc1 =new Document("name","MongoDB21");
Document myDoc = collection.find(doc1).first();
*/
/*Document myDoc = collection.find(Filters.eq("i", 5)).first();
System.out.println(myDoc.toJson()); */

//通过查询语句一次性获取多个数据
Block<Document> printBlock = new Block<Document>() {

@Override
public void apply(Document doc) {
// TODO Auto-generated method stub
System.out.println(doc.toJson());
}

};
//gt("i","50")
//collection.find(Filters.gt("i",10)).forEach(printBlock);
//collection
//对输出文档进性排序 -1为递减,1为递增
/*Document myDoc =collection.find(Filters.exists("i"))
.sort(new BasicDBObject("i", -1)).first();
System.out.println(myDoc.toJson());*/

// 选择性输出结果中的元素,0为不显示,1为显示 (两者为互斥关系,不能同时使用)
BasicDBObject exclude = new BasicDBObject();
exclude.append("_id", 0);
exclude.append("count", 0);
//exclude.append("name", 1);
//exclude.append("info", 1);
Document myDoc = collection.find().projection(exclude).first();
System.out.println(myDoc.toJson());
}

@After
public void destory() {
if(mongoClient!=null){
mongoClient.close();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: