MongoDB基礎操作
文章目錄
一,對比SQL與MongoDB相關概念
SQL術語/概念 | MongoDB術語/概念 | 解釋/說明 |
---|---|---|
database | database | 數據庫 |
table | collection | 表/集合 |
row | document | 數據記錄行/文檔 |
column | filed | 數據列/字段 |
index | index | 索引 |
table joins | 表連接/MongoDB不支持 | |
primary key | primary key | 主鍵/MongoDB使用 _id 字段爲主鍵 |
二.MongoDB操作命令和語法
1.創建數據庫
//如果數據庫不存在,則創建數據庫,若存在,則切換到當前數據庫
$ use test
注意:在mongodb中,集合只有在內容插入之後纔會創建,也就是說,創建集合(數據表)後,要再插入一個文檔(記錄),集合超級真正創建
2.查看所有數據庫
$ show dbs 或者show databases
3.刪除數據庫
$ db.dropDatabase()
4.查看當前使用的數據庫
//默認會是test
$ db或者db.getName()
5.顯示當前數據庫的狀態信息
$ db.stats()
6.修改數據庫名稱
//先拷貝再刪除原來的數據庫
db.copyDatabase('userinfo', 'userDB');
use userDB;
db.dropDatabase();
7.創建集合
$ db.createCollection("集合名字")
//db.createCollection(name, options) options指可選參數, 指定有關內存大小及索引的選項
8.查看已有集合
$ show tables 或者show collections 或者 db.getCollectionNames()
9.刪除指定集合
$ db.集合名.drop()
10.插入文檔
$ db.集合名.save(document);
$ db.集合名.insert(document);
$ db.集合名.insertOne()//將單個文檔插入集合
$ db.集合名.insertMany()//將文檔數組插入集合
//如果該集合名不存在,則會自動創建
11.查看所有文檔
$ db.集合名.find()
12.更新文檔
$ db.集合名.save(document); //若傳入了_id,可以實現單條修改,可以理解爲替換了之前的document
$ db.集合名.update({query},{//query類似於sql中的 條件
$set:{
字段:值 //類似sql中的set
}
})
//根據條件修改一條數據的內容,如出現多條,只修改第一個的
$ db.集合名.updateOne({條件},{$set:{修改的字段和值}})
//根據條件修改所有數據的內容,多條修改
$ db.集合名.updateMany({條件},{$set:{修改的字段和值}})
13.刪除文檔
$ db.集合名.deleteOne({query});//只會刪除第一條
$ db.集合名.deleteMany({query});//會刪除所有符合條件的
------以上兩個方法 官方推薦使用-------------
$ db.集合名.remove({query});//query類似於sql中的 條件
//無條件刪除數據,這裏要注意了,這是刪除所有數據,清空Collection
$ db.集合名.remove({})//謹慎操作
14.根據條件查詢文檔
$ db.集合名.findOne()//只返回一個記錄
//操作符
$ db.集合名.find({"id":"1"})//等於用冒號
//小於用 $lt
$ db.集合名.find({
"age":
{
$lt:18
}
})
//小於且等於 $lte
$ db.集合名.find({
"age":
{
$lte:18
}
})
//大於
$ db.集合名.find({
"age":
{
$gt:18
}
})
//大於等於
$ db.集合名.find({
"age":
{
$gte:18
}
})
//不等於
$ db.集合名.find({
"age":
{
$ne:18
}
})
操作 | 格式 | 範例 | RDBMS中的類似語句 |
---|---|---|---|
等於 | {: } |
db.col.find({"by":"菜鳥教程"}) | where by = ‘菜鳥教程’` |
|
小於 | {:{$lt:}} |
db.col.find({"likes":{$lt:50}}) | where likes < 50` |
|
小於或等於 | {:{$lte:}} |
db.col.find({"likes":{$lte:50}}) | where likes <= 50` |
|
大於 | {:{$gt:}} |
db.col.find({"likes":{$gt:50}}) | where likes > 50` |
|
大於或等於 | {:{$gte:}} |
db.col.find({"likes":{$gte:50}}) | where likes >= 50` |
|
不等於 | {:{$ne:}} |
db.col.find({"likes":{$ne:50}}) | where likes != 50` |
如果你熟悉常規的 SQL 數據,通過上表可以更好的理解 MongoDB 的條件語句查詢!
and查詢
$ db.集合名.find({key1:value1, key2:value2})
//類似於 WHERE 語句:WHERE id=1 AND name='zhangsan'
$ db.集合名.find({"id":1,"name":"zhangsan"})
or查詢
$ db.集合名.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
)
//類似於 WHERE 語句:WHERE id=1 or name='zhangsan'
$ db.集合名.find({$or:[
{"id":1,"name":"zhangsan"}
]}
)
and 和or聯合使用
$ db.集合名.find({
"age": {$gt:50},
$or: [
{"1": 1},
{"name":"zhangsan"}
]
})
升序
//寫 1 爲升序
$ db.集合名.find().sort({ 字段: 1 })
降序
//寫 -1 爲降序
$ db.集合名.find().sort({ 字段: -1 })
查詢多少條之後的數據
$ db.集合名.find().skip(n)//n代表某正整數 比如:查詢10條之後的數據
限制多少條的數據
$ db.集合名.find().limit(n)//n代表某正整數 比如:查詢前5條之後的數據
查詢 多少條之後的 多少條記錄
$ db.集合名.find().skip(n).limit(m)//n,m代表某正整數 比如:查詢10條之後的5條數據
查詢第一條記錄
$ db.集合名.findOne()
查詢結果的總條數
$ db.集合名.find().count()