使用Java對mongo集合文檔進行基本增刪查改操作
>添加驅動包
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
>Java基礎代碼
public class MongoConn {
/**
* Filters
* 該過濾器類爲所有的MongoDB的查詢操作靜態工廠方法。每個方法返回BSON類型,又可以傳遞給期望一個查詢過濾器的任何方法的一個實例。
* eq:匹配等於指定值的值。 gt:匹配大於指定值的值。 gte:匹配大於或等於指定值的值。 lt:匹配小於規定值的值。
* lte:匹配是小於或等於規定值的值。 ne:匹配不等於指定值的所有值。 in:匹配任何在數組中指定的值。 nin:沒有匹配數組中的規定值。
*/
public static void main(String[] args) {
// 建立連接 選擇數據庫
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase mymongo = mongoClient.getDatabase("mymongo");
System.out.println("conn success!");
// 新增集合
mymongo.createCollection("mycoll");
System.out.println("add coll successs!");
// 選擇集合
MongoCollection<Document> mycoll = mymongo.getCollection("mycoll");
// 新增文檔
List<Document> doclis = new ArrayList<Document>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("name", "zhangsan");
map.put("age", "21");
map.put("gender", "01");
Document doc1 = new Document(map);
map = new HashMap<String, Object>();
map.put("name", "lisi");
map.put("age", "22");
map.put("gender", "02");
Document doc2 = new Document(map);
map = new HashMap<String, Object>();
map.put("name", "wangwu");
map.put("age", "22");
map.put("gender", "02");
Document doc3 = new Document(map);
doclis.add(doc1);
doclis.add(doc2);
doclis.add(doc3);
mycoll.insertMany(doclis);
System.out.println("doc insert success!");
// 檢索一個集合的所有文檔
findAll(mycoll);
// 更新文檔
map = new HashMap<String, Object>();
map.put("name", "newli");
map.put("age", "22");
map.put("gender", "02");
Document updoc = new Document(map);
mycoll.replaceOne(Filters.eq("name", "lisi"), updoc);
findAll(mycoll);
// 刪除文檔
mycoll.deleteMany(Filters.eq("name", "zhangsan"));
findAll(mycoll);
}
// 檢索一個coll的所有doc
public static void findAll(MongoCollection<Document> coll) {
FindIterable<Document> find = coll.find();
MongoCursor<Document> iterator = find.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
>複製集和分片的理解
mongo的副本集:每個節點上都有一份完整的數據備份,可以實現讀寫的分離,實現故障時的切換。
mongo的分片:將數據自動的分解爲多個“塊”,可以實現數據的水平拓展和分佈計算。