文章目录



java操作MongoDB
简单查询
/**
* 简单查询
*/
@Test
public void find() {
// MongoClient mongoClient = new MongoClient("192.168.1.105",27017);// 非默认端口须指定端口号
MongoClient mongoClient = new MongoClient("192.168.1.105");// 创建MongoDB的客户端; 默认端口可不指定
MongoDatabase database = mongoClient.getDatabase("mongodb");// 打开数据库; database 等同于MySQL的database
MongoCollection<Document> collections = database.getCollection("student");// 获取集合; collections等同于MySQL的table
FindIterable<Document> documents = collections.find();// 查询文档集合; documents等同于MySQL的row(记录)
//遍历数据
for (Document document : documents) {//这里可以类比JDBC中,从结果集ResultSet中取值;值得注意的是:数据的类型哦;
String id = document.getString("_id");
System.out.println("id:" + id);
String sname = document.getString("sname");
System.out.println("sname:" + sname);
Integer age = document.getInteger("age");
System.out.println("age:" + age);
String address = document.getString("address");
System.out.println("address:" + address);
}
mongoClient.close();//关闭连接
}
复杂(条件)查询
/**
* 复杂(条件)查询
*/
@Test
public void findByCondition() {
MongoClient mongoClient = new MongoClient("192.168.1.105");// 创建MongoDB的客户端; 默认端口可不指定
MongoDatabase database = mongoClient.getDatabase("mongodb");// 打开数据库; database 等同于MySQL的database
MongoCollection<Document> collections = database.getCollection("student");// 获取集合; collections等同于MySQL的table
BasicDBObject bason = new BasicDBObject("sname", "goblin");
FindIterable<Document> documents = collections.find(bason);// 获取集合; collections等同于MySQL的table
//遍历数据
for (Document document : documents) {//这里可以类比JDBC中,从结果集ResultSet中取值;值得注意的是:数据的类型哦;
String id = document.getString("_id");
System.out.println("id:" + id);
String sname = document.getString("sname");
System.out.println("sname:" + sname);
Integer age = document.getInteger("age");
System.out.println("age:" + age);
String address = document.getString("address");
System.out.println("address:" + address);
}
mongoClient.close();//关闭连接
}
插入数据
/**
* 插入数据
*/
@Test
public void insert(){
MongoClient mongoClient = new MongoClient("192.168.1.105");// 创建MongoDB的客户端; 默认端口可不指定
MongoDatabase database = mongoClient.getDatabase("mongodb");// 打开数据库; database 等同于MySQL的database
MongoCollection<Document> collections = database.getCollection("student");// 获取集合; collections等同于MySQL的table

Map<String, Object> map = new HashMap<String, Object>();
map.put("_id", "2");
map.put("sname", "ygzy");
map.put("age", 22);
map.put("address","Shandong Of China");
Document document = new Document(map);
collections.insertOne(document);// 插入数据
mongoClient.close();//关闭连接
}
更新数据
删除数据
/**
* 删除数据
*/
@Test
public void delete(){
MongoClient mongoClient = new MongoClient("192.168.1.105");// 创建MongoDB的客户端; 默认端口可不指定
MongoDatabase database = mongoClient.getDatabase("mongodb");// 打开数据库; database 等同于MySQL的database
MongoCollection<Document> collections = database.getCollection("student");// 获取集合; collections等同于MySQL的table

BasicDBObject bson = new BasicDBObject("_id", "2");// 删除id为2的数据
collections.deleteOne(bson);
mongoClient.close();//关闭连接
}