前言
前面講解了如何在springboot中集成mongodb,本文將講解mongodb命令操作及其MongoTemplate的使用。穿插的目的在於不用先去尋找mongodb的命令又去尋找在java中的應用。本人就是從中過來的,所以本文旨在減少剛入門的同學少走一點彎路。
mongoDB所存儲的數據以鍵值對的方式存儲
注意事項
在創建數據庫和創建集合沒有講解MongoTemplate的使用是因為:在創建數據庫時只需要在配置文件中配置database路徑即可。而在創建集合是只需要進行插入或者更新操作即可自動創建集合
注入mongotemplate
@Autowired
MongoTemplate mongoTemplate;
1. 創建數據庫
use mydatabase
#插入數據
db.mydatabase({"name","我的數據庫"})
show dbs
2. 創建集合
use mydatabase
db.createCollection("mycollection")
# 顯示所有集合
show collections
3. 插入文檔
命令方式:
db.mycollection.insert({
"key":"data",
"value":"數據",
"num": 1
})
java代碼:
// 自定義對象
Data data = new Data("data","數據",1);
mongoTemplate.insert(data, "mycollection");
3. 更新文檔
命令方式:
# 更新單行
db.mycollection.update({"key":"data"},{"$set":{"value":"更新數據"}})
# 更新多行
db.mycollection.update({"key":"data"},{"$set":{"value":"更新數據"}},{multi:true})
#如果數據結構是
{
"key":"key"
"data":{
"value":"數據"
}
}
db.mycollection.update({"key":"data"},{"$set":{"data.value":"更新數據"}})
java代碼:
Update update = new Update();
update.set("value":"更新數據");
update.set("data.value":"更新數據");
// num自增加 前提 num 對應的必須為整形或者浮點型
update.inc("num", 1);
Query query = new Query(
Criteria.where("key").is("data")
);
mongoTemplate.updateFirst(query, update, "mycollecition");
4. 查詢文檔
命令方式
#普通查詢
db.mycollection.find({"key":"data"})
#正則查詢
db.mycollection.find({"key":{"$regex":"dat"}})
#大於等於 gte 小於等於 lte 大於 gt 小於 lt
db.mycollection.find({"num":{"$lt":1}})