1、导入Pom依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.11.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2、java客户端代码
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.junit.Before;
import org.junit.Test;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Consumer;
import static com.mongodb.client.model.Updates.*;
import static com.mongodb.client.model.Filters.*;
public class QuickStartJavaDocumentTest {
private MongoDatabase db;
private MongoCollection<Document> doc;
private MongoClient client;
@Before
public void init(){
client=new MongoClient("ip",27017);
db=client.getDatabase("lison");
doc = db.getCollection("users");
}
@Test
public void insertDemo(){
Document doc1=new Document();
doc1.append("username","cang");
doc1.append("country","China");
doc1.append("age",20);
doc1.append("lenght",1.77f);
doc1.append("salary",new BigDecimal("6565.22"));
Map<String,String> address1=new HashMap<>();
address1.put("aCode","0000");
address1.put("add","xxx000");
doc1.append("address",address1);
Map<String,Object> favorites=new HashMap<>();
favorites.put("movies", Arrays.asList("aa","bb"));
favorites.put("cites",Arrays.asList("东莞","东京"));
doc1.append("favorites",favorites);
Document doc2=new Document();
doc2.append("username","Chen");
doc2.append("country","China");
doc2.append("age",30);
doc2.append("lenght",1.77f);
doc2.append("salary", new BigDecimal("8888.22"));
Map<String, String> address2 = new HashMap<>();
address2.put("aCode", "411000");
address2.put("add", "我的地址 2");
doc2.append("address", address2);
Map<String, Object> favorites2 = new HashMap<>();
favorites2.put("movies", Arrays.asList("东游记", "一路向东"));
favorites2.put("cites", Arrays.asList("珠海", "东京"));
doc2.append("favorites", favorites2);
doc.insertMany(Arrays.asList(doc1,doc2));
}
@Test
public void testFind(){
final List<Document> ret=new ArrayList<>();
Consumer<Document> printDocument=new Consumer<Document>() {
@Override
public void accept(Document document) {
System.out.println(document);
ret.add(document);
}
};
Bson all = all("favorites.cites", Arrays.asList("东莞", "东京"));
FindIterable<Document> find=doc.find();
find.forEach(printDocument);
System.out.println("------------------>"+String.valueOf(ret.size()));
ret.remove(ret);
String regexStr=".*c.*";
Bson regex = regex("username", regexStr);
Bson or = or(eq("country", "English"), eq("country", "USA"));
Bson and = and(regex, or);
FindIterable<Document> find2 = doc.find(and);
find2.forEach(printDocument);
System.out.println("------------------------->"+String.valueOf(ret.size()));
}
@Test
public void testUpdate(){
Bson eq = eq("username", "cang");
Bson set = set("age", 8);
UpdateResult updateMany = doc.updateMany(eq, set);
System.out.println("---------->"+String.valueOf(updateMany.getModifiedCount()));
Bson eq2 = eq("favorites.cites", "东莞");
Bson addEachToSet= addEachToSet("favorites.movies", Arrays.asList("小电影2", "小电影3"));
UpdateResult updateResult = doc.updateMany(eq2, addEachToSet);
System.out.println("------------>"+String.valueOf(updateResult.getModifiedCount()));
}
@Test
public void testDelete(){
Bson eq = eq("username", "lison");
DeleteResult deleteMany = doc.deleteMany(eq);
System.out.println("-------------->"+String.valueOf(deleteMany.getDeletedCount()));
Bson gt = gt("age", 8);
Bson lt = lt("age", 25);
Bson and = and(gt, lt);
DeleteResult deleteMany2 = doc.deleteMany(and);
System.out.println("---------------->"+String.valueOf(deleteMany2.getDeletedCount()));
}