標籤:
整理來自
https://www.shiyanlou.com/courses/running/57
啟動
$ sudo service mongodb start
進入MongoDB命令列操作介面,在命令列中敲exit可以退出
$ mongo
實驗中的布爾類型的ture用1代替,false用0代替
建立資料庫
範例:進入mongoDB命令列操作介面之後,進行如下操作:
> use Chenshiswitched to db Chenshi
您可以使用db命令查看您當前選擇的資料庫
> dbChenshi
您也可以通過使用show dbs命令查看所有的資料庫
> show dbs
在這條命令之後您剛才建立的Chenshi不會顯示,這隻有在您像資料庫中插入了資料之後才能顯示
刪除資料庫 -db.dropDatabase()
假設剛才我們使用語句db.computer.insert({"name":"shiyanlou"})對資料庫Chenshi進行了資料插入操作
> show dbs #顯示當前系統中的所有資料庫> use Chenshi #轉到Chenshi資料庫switched to db Chenshi> db.dropDatabase(){"dropped":"Chenshi","ok":1}> show dbs
建立集合 -createCollection()
文法:
db.createCollection(name,options)
參數描述:
- name:建立的集合名稱
- options:是一個作為初始化的文檔(可選)
範例:
> db.createCollection("shiyanlou") #無參數{ "ok" : 1 }> show collectionsshiyanlousystem.indexes> db.createCollection("shiyanlou2", { capped : 1, autoIndexID : 1, size : 6142800, max : 10000 } ) #帶參數{ "ok ": 1 }
參數描述:
- capped:類型為Boolean,如果為ture則建立一個固定大小的集合,當其條目達到最大時可以自動覆蓋以前的條目。在設定其為ture時也要指定參數大小;
- autoIndexID:類型為Boolean,預設為false,如果設定為ture,則會在_id field.s上自動建立索引;
- size:如果capped為ture需要指定,指定參數的最大值,單位為byte;
- max:指定最大的文檔數。 在mogodb中也可以不用建立集合,因為在建立文檔的時候也會自動的建立集合
刪除集合 -db.COLLECTION.drop()
操作執行個體:
> use Chenshiswitched to db Chenshi> show collectionsshiyanloushiyanlou2system.indexes> db.shiyanlou.drop()ture> show collectionsshiyanlou2system.indexes
刪除成功
注意:當您要刪除指定的集合時,用您想要刪除的集合名稱替代COLLECTION即可
插入文檔 -db.COLLECTION_NAME.insert(document)
操作執行個體:
> userdoc1=({"user_id":1,"name":"cloud","state":"active","actor":"user","e-mail":" test@qq.com","VM_num":2,"time":[{"date":"2014-08-12","hour":"10:53 PM"}] }) > userdoc2=({"user_id":2,"name":"testadmin","state":"active","actor":"admin","e-mail":" test@qq.com","VM_num":2,"time":[{"date":"2014-08-11","hour":"06:34 AM"}] }) > doc1=({"name":"peter","position":"teacher"}) #先定義文檔> use Chenshiswitched to db Chenshi> db.shiyanlou.insert(userdoc1)WriteResult({"nInserted":1})> db.shiyanlou.insert(userdoc2)WriteResult({"nInserted":1})> db.shiyanlou.insert(doc1)WriteResult({"nInserted":1})
插入文檔成功,當然也可以直接將文檔的內容作為函數的參數直接替代document
更新文檔 -db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)
操作執行個體:
> db.shiyanlou.update({"user_id":"02","e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}})WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})> db.shiyanlou.find()
- 將user_id=2的文檔的e-mail改為[email protected]
- 第一個大括弧內容標示尋找條件,第二個大括弧內容則表示更新後的資料
- 預設的update函數只對一個文檔更新,如果想作用所有文檔,則需要加入multi:ture
操作執行個體:
db.shiyanlou.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:ture})
替換已存在的文檔 -db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
操作執行個體:
> db.shiyanlou.save({"_id":ObjectId("53ea174ccb4c62646d9544f4"),"name":"Bob","position":"techer"})WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
跟update差不多,但是update更好用
刪除文檔 -db.COLLECTION_NAME.remove(DELECTION_CRITERIA)
操作執行個體:
> db.shiyanlou.remove({"name":"Bob"})WriteResult({"nRemoved":1})
其實remove函數的參數跟update函數的第一個參數一樣,相當於尋找條件,注意,不要誤刪!
刪除後可以用尋找命令確認資料:
> db.shiyanlou.find()
mongoDB更新和刪除文檔(document)