標籤:
1. 串連MongoDB:
Mongodb://username:[email protected]/dbname
2. 建立資料庫:
use dbname:如果資料庫不存在則建立資料庫,否則切換到指定資料庫。
3. 查看所有資料庫:
show dbs
註:
該命令不會顯示新建立的空資料庫,若想顯示需要向空資料庫插入一些資料。
MongoDB中預設的資料庫為test,若果沒有建立新的資料庫,集合將存放於test中。
4. 查看當前資料庫名:
db
5. 刪除資料庫:
db.dropDatabase():刪除當前資料庫。
6. 插入文檔:
使用use命令選擇指定資料庫然後再執行插入操作:
db.collection_name.insert(document):向資料庫某集合插入文檔,若該集合不在
該資料庫中則MongoDB會自動建立該集合并插入文檔。
使用樣本:
>db.col.insert({title: ‘MongoDB命令列操作‘,
description: ‘使用Shell命令列操作MongoDB‘,
by: ‘吳俊填‘,
tags: [‘mongodb‘, ‘database‘, ‘NoSQL‘],
likes: 100
})
(也可以將文檔定義為一個變數然後再插入該變數)
7. 查看已插入文檔:
使用use命令選擇指定資料庫然後再執行查詢操作:
db.collection_name.find():以非結構化方式顯示文檔
db.collection_name.find().pretty():以結構化方式顯示文檔
db.collection_name.findOne():只返回一個文檔(以結構化方式顯示)
條件查詢樣本:
db.collection_name.find({‘name’:’wujuntian’})
db.col.find({"likes":{$ne:50}}).pretty() //不等於
db.col.find({$or:[{"by":"吳俊填"},{"title": "MongoDB命令操作"}]}).pretty() //或
db.col.find({"likes": {$gt:50}, $or: [{"by": "吳俊填"},{"title": "MongoDB命令操作"}]}).pretty()
db.col.find({likes : {$lt :200, $gt : 100}})
8. 更新文檔:
(1)update()方法:用於更新已存在的文檔。
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
參數說明:
query : update的查詢條件,類似sql update查詢內where後面的內容。
update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的內容。
upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入新記錄,true為插入,預設是false,不插入。
multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。
writeConcern :可選,拋出異常的層級。
使用樣本:
>db.col.update({‘title‘:‘MongoDB‘},{$set:{‘title‘:‘MongoDB命令操作‘}},{multi:true})
(2)save方法:通過傳入的文檔來替換已有文檔。
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
參數說明:
document : 文檔資料。
writeConcern :可選,拋出異常的層級。
樣本:
>db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"), //替換此_id指定的文檔
"title" : "MongoDB",
"description" : "MongoDB 是一個 Nosql 資料庫",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
註:
如果不指定_id,save()方法類似於inser()方法。
9. 刪除文檔:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
參數說明:
query :(可選)刪除的文檔的條件。
justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。
writeConcern :(可選)拋出異常的層級。
樣本:
>db.col.remove({‘title‘:‘MongoDB‘})
>db.col.remove() //刪除所有資料
10. MongoDB $type操作符
$type操作符是基於BSON類型來檢索集合中匹配的資料類型,並返回結果。
樣本:db.col.find({"title" : {$type : 2}})
(擷取“col”集合中title為String資料類型的資料)
11. limit():讀取指定數量的資料記錄。
db.COLLECTION_NAME.find().limit(NUMBER)
使用樣本:
db.col.find({},{"title":1,_id:0}).limit(2)
12. skip():跳過指定數量的資料記錄。
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
使用樣本:
db.col.find({},{"title":1,_id:0}).limit(1).skip(1)
13. sort():對資料記錄進行排序。
sort()可以通過參數指定排序的欄位,並使用1 和-1 來指定排序的方式,其中1 為升序排列,而-1是用於降序排列。如果沒有指定排序方式,預設按照文檔的升序排列。
db.COLLECTION_NAME.find().sort({KEY:1})
使用樣本:
db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
14. ensureIndex():建立索引。
db.COLLECTION_NAME.ensureIndex({KEY:1}) (1表示按升序建立索引,-1表示降序)
樣本:
db.col.ensureIndex({"title":1,"description":-1})
註:
MongoDB中的索引是儲存在B樹結構中的。
15. aggregate():彙總。
db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
樣本:
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
類似於select by_user, count(*) from mycol group by by_user
MongoDB命令列操作