Java开发学习--MongoDB
之前只學過sql,第一次使用非關系型數據庫。以前對于關系型數據庫與非關系型數據庫的概念很模糊,通過這次的學習對這兩者有了一個清晰的概念。
主鍵
在MongoDB中,主鍵名叫"_id",如果在生成數據的時候,用戶不主動為其分配一個主鍵的話,MongoDB會自動生成一個隨機分配的值。
第一條數據是我一開始忘了分配主鍵,MongoDB自動生成的值,類型為ObjectId。
第二條數據是我主動分配主鍵,類型為String。
查詢的時候也不一樣:
查詢語句(find)
集合簡單查詢方法
MongoDB語法:db.colloection.find()
sql:select * from collection
復制代碼
collection是集合的名稱,類似于sql的table。
返回制定的鍵值
MongoDB:db.collection.find({},{"teamName":1})
sql:select teamName from collection復制代碼
條件過濾
MongoDB:db.collection.find({"teamName":"good"})
sql:select * from collection where teamName = "good"復制代碼
查詢全格式
db.collection.find({查詢條件},{查詢列})復制代碼
增(insert):
db.team.insert({"teamName":"111","creator":"xxx"})復制代碼
刪(remove):
db.team.remove({"teamName":"111"})復制代碼
不帶參數將會刪除全部數據。
改(update):
db.team.update({條件},{$set:{新數據}})復制代碼
例如:修改id為111的team的名字
db.team.update({"_id":"111"},{$set:{"teamName":"999"}})復制代碼
查詢操作符
聯表查詢
因為MongoDB是非關系型數據庫,而非關系型數據庫有一個特點就是表之間屬于弱關聯。但是我在網上看到一種能夠實現MongoDB關聯查詢的一種方法。
db.product.aggregate([
{
$lookup://關聯
{
from: "orders", // 需要關聯的表
localField: "_id", // product 表需要關聯的鍵
foreignField: "pid", // orders 的 matching key
as: "inventory_docs" // 對應的外鍵集合的數據
}
},
{
$match: {//篩選數據
price: { $gt:20 }
}
},
{
$project:{//獲取指定字段
"inventory_docs": 1,
"_id": 0
}
}
])
復制代碼
$lookup:關聯表
$match:篩選數據
$project:獲取指定字段
轉載于:https://blog.51cto.com/14028890/2332718
總結
以上是生活随笔為你收集整理的Java开发学习--MongoDB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单介绍Kubernetes
- 下一篇: 【Java基本功】一文读懂String及