創建資料庫 如果資料庫不存在則創建,否則切換到指定資料庫 查看當前資料庫名 查看所有資料庫 查看集合 刪除資料庫 刪除當前資料庫 刪除集合,collection為集合名,例 插入文檔 實例 <! more 我們也可以把數據定義為變數 插入文檔也可以使用 命令,如果不指定 欄位save()方法類似 於 ...
創建資料庫
use DATABASE_NAME
如果資料庫不存在則創建,否則切換到指定資料庫
db
查看當前資料庫名
show dbs
查看所有資料庫
show tables
查看集合
刪除資料庫
db.dropDatabase()
刪除當前資料庫
db.collection.drop()
刪除集合,collection為集合名,例db.student.drop()
插入文檔
db.COLLECTION_NAME.insert(document)
實例
db.col.insert({
title: 'MongoDB教程',
tags: ['mongodb', 'database', 'nosql'],
url: 'www.runoob.com'
})
我們也可以把數據定義為變數
document = ({ // 記得這邊有個括弧
title: 'MongoDB教程',
tags: ['mongodb', 'database', 'nosql'],
url: 'www.runoob.com'
})
db.col.insert(document)
插入文檔也可以使用 db.col.save(document)
命令,如果不指定 _id
欄位save()方法類似
於 insert()。如果指定 _id
欄位,則會更新該 _id
的數據。
更新文檔
update()方法
db.collection.update(
<query>, // 查詢條件
<update>, //update的對象和一些更新的操作符
{
upsert: <boolean>, // 可選
multi: <boolean>, // 可選
writeConcern: <document> // 可選,拋出異常的級別
}
)
例子
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
以上語句只會修改第一條發現的文檔,如果你要修改多條相同的文檔,則需要設置multi參數為true
save()方法
db.collection.save(
<document>, // 傳入文檔用來替換之前的文檔
{
writeConcern: <document>
}
)
例子
db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"), // id唯一
"title" : "MongoDB",
"description" : "MongoDB 是一個 Nosql 資料庫",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
刪除文檔
db.collection.remove(
<query>, // 可選,刪除的文檔的條件
{
justOne:<boolean>, // 可選,如果為true或1,則只刪除一個文檔
writeConcern: <document> // 可選,拋出異常級別
}
)
例子
db.col.remove({'title':'mongodb'})
db.col.remove({})
刪除所有數據
查詢文檔
db.col.find()
查看已插入的文檔
db.col.find().pretty()
輸出好看的格式
db.col.findOne()
只返回一個文檔
條件操作符
(>) 大於 - $gt
(<) 小於 - $lt
(>=) 大於等於 - $gte
(<= ) 小於等於 - $lte
db.col.find({"likes" : {$gt : 100}})
查找likes大於100的數據
AND條件
傳入多個鍵值然後逗號隔開
db.col.find({key1: value1, key2: value2}).pretty()
OR條件
[
{key1: value1}, {key2: value2}
]
}).pretty()
$type操作符
類型 | 數字 |
---|---|
Double | 1 |
String | 2 |
Object | 3 |
Array | 4 |
Binary data | 5 |
Object id | 7 |
Boolean | 8 |
Date | 9 |
Null | 10 |
不全,完整表格訪問這裡
db.col.find({'title' :{$type: 2}})
如果title為String則輸出
limit and skip
db.col.find().limit(2)
只讀取兩條
db.col.find().limit(1).skip(1)
跳過第一條,只顯示第二條
skip預設為0
sort()方法
1升序,-1降序
db.col.find().sort({key: 1})
例子
db.col.find({}, {'title': 1, _id: 0}).sort({'likes': -1})