mavn 版本
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.5.0</version>
</dependency>
package com.mongodb;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import org.bson.BSON;
import org.bson.Document;
import org.bson.codecs.configuration.CodecRegistries;
import org.bson.codecs.configuration.CodecRegistry;
import org.bson.codecs.pojo.PojoCodecProvider;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by liugaoqiao on 2018/9/23.
*/
public class MongodbTest {
public static void main(String[] args) {
add();
pojoFind();
}
/**
* pojo查找
*/
private static void pojoFind() {
ServerAddress serverAddress = new ServerAddress("192.168.5.233", 27022);
// 1.增加默认编解码器
List<CodecRegistry> codecRegistries = new ArrayList<>();
codecRegistries.add(MongoClient.getDefaultCodecRegistry());
//2 增加pojo 解码器
CodecRegistry providers = CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build());
codecRegistries.add(providers);
// 通过解码生成注册中心
CodecRegistry codecRegistry = CodecRegistries.fromRegistries(codecRegistries);
MongoClient mongoClient = new MongoClient(serverAddress, MongoClientOptions.builder().codecRegistry(codecRegistry).build());
MongoDatabase mongoDatabase = mongoClient.getDatabase("test4");
MongoCollection<User> documentMongoCollection = mongoDatabase.getCollection("user", User.class);
FindIterable<User> findIterable = documentMongoCollection.find();
Block<User> printDoc = new Block<User>() {
@Override
public void apply(User user) {
System.out.println(user.getAge());
}
};
findIterable.forEach(printDoc);
}
/**
* 创建MongoClient
*
* @return
*/
private static MongoCollection<Document> getMongoCollection() {
MongoClient mongoClient = new MongoClient("192.168.5.233", 27022);
MongoDatabase mongoDatabase = mongoClient.getDatabase("test4");
MongoCollection<Document> documentMongoCollection = mongoDatabase.getCollection("user");
return documentMongoCollection;
}
/***
* 查找
*/
private static void find() {
Filters.regex("user", ".*s.*"); // like %s%
FindIterable<Document> findIterable = getMongoCollection().find();
Block<Document> printDoc = new Block<Document>() {
@Override
public void apply(Document document) {
System.out.println(document.toJson());
}
};
findIterable.forEach(printDoc);
}
/**
* 删除
*/
private static void delete() {
DeleteResult deleteResult = getMongoCollection().deleteMany(Filters.eq("name", "zhangsan"));
System.out.println(deleteResult.getDeletedCount() + "");
//删除大于8 小于10 的年纪数据
DeleteResult deleteR = getMongoCollection().deleteMany(Filters.and(Filters.gt("age", 8), Filters.lt("age", 10)));
System.out.println(deleteR.getDeletedCount() + "");
}
/**
* 更新
*/
private static void update() {
UpdateResult updateResult = getMongoCollection().updateMany(Filters.eq("name", "tes2"), new Document("$set", new Document("age", 10)));
System.out.println(updateResult.getModifiedCount() + "");
}
/**
* 增加
*/
private static void add() {
List<Document> doc1 = new ArrayList<>();
Document document1 = new Document();
document1.put("name", "zhangsan");
document1.put("age", 1);
document1.put("price", 1.77f);
doc1.add(document1);
List<Document> doc2 = new ArrayList<>();
Document document2 = new Document();
document2.put("name", "tes2");
document2.put("age", 4);
document2.put("price", 2.77f);
doc1.add(document2);
getMongoCollection().insertMany(doc1);
}
}