首先引入依赖
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.6.0</version>
</dependency>
MongoClient mc = null;
MongoDatabase database = null;
MongoCollection<Document> collection = null;
@Before
public void before(){
//建立一个连接
mc = new MongoClient("localhost",27017 );
//获取一个数据库
database = mc.getDatabase("mydb");
//获取一个集合
collection = database.getCollection("test");
}
@Test
public void insert(){
//创建一个文档
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))
.append("info", new Document("x", 203).append("y", 102));
//插入一个文档
collection.insertOne(doc);
}
@Test
public void insertMany(){
//插入多个文档
List<Document> documents = new ArrayList<Document>();
for (int i = 0; i < 100; i++) {
documents.add(new Document("i", i));
}
collection.insertMany(documents);
}
@Test
public void count(){
//集合长度
System.out.println("集合长度:"+collection.count());
}
@Test
public void firstQuery(){
//获取集合第一个文档
Document myDoc = collection.find().first();
System.out.println(myDoc.toJson());
}
@Test
public void allQuery(){
//遍历集合,获取每个文档
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
}
@Test
public void allQuery2(){
//遍历集合,获取每个文档
//官方不推荐这种用法
for (Document cur : collection.find()) {
System.out.println(cur.toJson());
}
}
@Test
public void allQuery3(){
//遍历集合,获取每个文档,分页
MongoCursor<Document> cursor = collection.find().skip(10).limit(5).iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
}
@Test
public void eq(){
//查询i=100的文档
Document myDoc = collection.find(Filters.eq("i", 100)).first();
System.out.println(myDoc.toJson());
}
@Test
public void gt(){
//查询i>50
Block<Document> printBlock = new Block<Document>() {
public void apply(final Document document) {
System.out.println(document.toJson());
}
};
collection.find(Filters.gt("i", 50)).forEach(printBlock);
}
@Test
public void between(){
//查询i>=50 and i<=100
Block<Document> printBlock = new Block<Document>() {
public void apply(final Document document) {
System.out.println(document.toJson());
}
};
collection.find(Filters.and(gte("i", 50), Filters.lte("i", 100))).forEach(printBlock);
}
@Test
public void updateOne(){
collection.updateOne(Filters.eq("i", 10), new Document("$set", new Document("i", 110)));
}
@Test
public void updateMany(){
UpdateResult updateResult = collection.updateMany(Filters.lt("i", 100), Updates.inc("i", 100));
System.out.println(updateResult.getModifiedCount());
}
@Test
public void deleteOne(){
collection.deleteOne(Filters.eq("i", 110));
}
@Test
public void deleteBetween(){
DeleteResult deleteResult = collection.deleteMany(Filters.gte("i", 100));
System.out.println(deleteResult.getDeletedCount());
}
@Test
public void addIndex(){
collection.createIndex(new Document("i", 1));
}