mongoDB更新和刪除文檔(document)

來源:互聯網
上載者:User

標籤:

整理來自

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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.