MongoDB 学习记录四(java)

Felix 2019年06月18日 502次浏览

MongoDB 提供了多种语言的连接操作方式,这里以java为例。

通过maven添加driver

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver</artifactId>
    <version>3.10.2</version>
</dependency>

连接数据库

// 无密码验证
try {
	mongoClient = new MongoClient("192.168.0.103", 27017);
	mongoDatabase = mongoClient.getDatabase("test");
	System.out.println("connect mongoDB successfully");
} catch (Exception e) {
	e.printStackTrace();
}
// 账户密码验证
try {
	//ServerAddress()两个参数分别为 服务器地址 和 端口  
	ServerAddress serverAddress = new ServerAddress("192.168.0.103",27017);  
	List<ServerAddress> addrs = new ArrayList<ServerAddress>();  
	addrs.add(serverAddress);  
	  
	//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  
	MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());  
	List<MongoCredential> credentials = new ArrayList<MongoCredential>();  
	credentials.add(credential);  
	  
	//通过连接认证获取MongoDB连接  
	MongoClient mongoClient = new MongoClient(addrs,credentials);  
	  
	//连接到数据库  
	MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");  
	System.out.println("Connect to database successfully");  
} catch (Exception e) {
	e.printStackTrace();
}

集合操作

首选需要连接数据库,并获取数据库连接。

// 创建集合
mongoDatabase.createCollection("test");

// 获取集合
mongoDatabase.getDatabase("test");

// 删除集合
mongoDatabase.getDatabase("test").drop();

文档操作

首先需要获取集合。

// 插入文档, 文档以document方式存在于数据
// 插入单条记录
Document doc = new Document("name", "Felix").append("from", "shanxi");
collection.insertOne(doc);
// 插入多条检录
List<Document> list = new ArrayList<>();
list.add(doc);
list.add(doc);
collection.insertMany(list);

// 删除文档
// 删除第一个符合条件的记录
collection.deleteOne(Filters.eq("name", "Felix"));
// 删除所有符合条件的记录
collection.deleteMany(Filters.eq("name", "Felix"));

// 更新文档, 同上
collection.updateOne(Filters.eq("name", "Felix"), new Document("$set",new Document("from","sx")));
collection.updateMany(Filters.eq("name", "Felix"), new Document("$set",new Document("from","sx")));

// 查询文档
FindIterable<Document> findIterable = collection.find();  // find可以添加查询条件参数
MongoCursor<Document> mongoCursor = findIterable.iterator();  
while(mongoCursor.hasNext()){  
	System.out.println(mongoCursor.next());  
}