比较基础的简单的java后端可能会用到的mongodb连接操作分享。
查看本地数据库列表
首先设置mongoclient,之后使用测试用例查看本地数据库列表
public class test {
private static MongoClient mongoClient= new MongoClient("localhost", 27017);
@Test
public void getDBs(){
MongoIterable<String> datanames=mongoClient.listDatabaseNames();
for (String databasename:datanames
) {
System.out.println(databasename);
}
}
}
查看某库中集合列表
使用Mongoclient中的getDatabase方法,获取数据库对象
private static MongoClient mongoClient= new MongoClient("localhost", 27017);
private static MongoDatabase mongoDatabase=mongoClient.getDatabase("fishbook");
@Test
public void getCollections(){
MongoIterable<String> listColloctionNames=mongoDatabase.listCollectionNames();
for (String colloctionName:listColloctionNames
) {
System.out.println(colloctionName.toString());
}
}
查看某集合中全部数据
使用MongoDatabase的getCollection方法获得集合对象,使用MongoCollection中的find方法获得数据,返回类型为Document,需要进行转化,转化为常用的ArrayList类型数据。
private static MongoClient mongoClient= new MongoClient("localhost", 27017);
private static MongoDatabase mongoDatabase=mongoClient.getDatabase("fishbook");
private static MongoCollection<Document> user=mongoDatabase.getCollection("user");
@Test
public void getDocument_test(){
FindIterable<Document> documents=user.find();
List<String> users=new ArrayList<>();
for (Document document:documents
) {
String user_one = document.toJson();
users.add(user_one);
System.out.println(user_one);
}
}
根据用户名查询数据
使用BasicDBObject设立一个查询条件,实现条件查询效果
@Test
public void test_username(){
String username="user_test1";
BasicDBObject find_user = new BasicDBObject();
find_user.put("username",username);
FindIterable<Document> documents=user.find(find_user);
Document document=documents.first();
if(document==null){
System.out.println("tolerable");
}else {
System.out.println("forbidden");
System.out.println(document.toJson());
}
}
插入一条用户数据
mongodb支持文档类型数据,new一个Document,将数据append文档中,再通过insertOne写入mongodb。
@Test
public void insert(){
Document document = new Document();
document.append("name","user001");
document.append("username","user001");
document.append("password","123456");
user.insertOne(document);
System.out.println("数据插入成功");
}