mongodb的學習筆記一(集合和文檔的增刪改查)

來源:互聯網
上載者:User

標籤:

1資料庫的增刪改查

一、增加一個資料庫:

use blog-----切換到指定的資料庫,如果資料庫不存在,則自動建立該資料庫(建立的資料庫,如果沒有儲存對應的集合,是不會顯示出來的)

 二、刪除一個資料庫

1首先用use 切換到你需要刪除的資料庫use  test2然後執行db.dropDatabase()命令db.dropDatabase()

三、修改一個資料庫的名字

db.copyDatabase(fromdb, todb, fromhost)fromdb:來源資料庫,todb:目標資料庫fromhost:原地址執行個體:修改blog的資料庫名為blog123use blogdb.copyDatabase("blog","blog3");db.dropDatabase()

四、查詢所有資料庫

show dbs

 2文檔的增刪改查(集合---表,文檔--行,欄位--列)

一、增加文檔

db.table_name.insert(document):插入文檔db.table_name.save(document):插入文檔,如果帶有id,則更新注意,document都是json格式執行個體:插入一個user執行個體db.user.insert({"name":"zhangsan","password":"123456"})或db.user.save({"name":"zhangsan","password":"123456"})

二、刪除文檔

db.table_name.remove(query,juseone)注意:query與justone都是JSON格式query:刪除的查詢條件justone:是否只刪除一條文檔樣本:只刪除一個name等於test的文檔db.user.remove({"name":"test"},{justone: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的記錄,是否插入objNew,true為插入,預設是false,不插入。    multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。    writeConcern :可選,拋出異常的層級。樣本:更新name為zhangsan的密碼為111111,如果不存在就插入,如果存在多條,則只更新一條use blogdb.user.update({"name":"zhangsan"},{$set:{"password":"111111"},true,false})

update語句的更新操作符說明:

1$set:相當於等號“=”,也可以為文檔新增加一個欄位,例如name不存在,則添加一個name欄位例如:{$set:{“name“:“"123"}}2$inc:相當於“加等”“+=”,欄位必須存在, 例如:{$inc:{"ago":1}}3$unset:去除文檔的某個欄位例如:{$unset:{"ago":0}}4$push:為文檔的某個欄位添加一個數組值,如果欄位不存在,則建立欄位原記錄:{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ]}執行命令db.user.update({"name" : "zhangsan"},{$push:{"group":"sale"}})執行後{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ,"sale"]}5$ne主要給數群組類型索引值添加一個元素時,避免在數組中產生重複資料,$ne在有些情況是不通行的。 db.user.update({"group" : {$ne:"sale"}},{$push:{"group":"sale"}})6.數組修改器--$pop、$pull$pop從數組的頭或者尾刪除數組中的元素--從數組的尾部刪除 1> db.c.update({"name" : "zhangsan"},{$pop:{"group":1}})$pull從數組中刪除滿足條件的元素,樣本如下:> db.user.update({"name" : "zhangsan"},{$pull:{"group":"sale"}})7.數組的定位修改器-------------------------------------------------------------------在需要對數組中的值進行操作的時候,可通過位置或者定位操作符("$").數組是0開始的,可以直接將下標作為鍵來選擇元素。樣本如下:{"uid":"001",comments:[{"name":"t1","size":10},{"name":"t2","size":12}]}> db.c.find({"uid":"001"}){ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {"name" : "t1", "size" : 10 }, { "name" : "t2", "size" : 12 } ] }> db.c.update({"uid":"001"},{$inc:{"comments.0.size":1}})> db.c.find({"uid":"001"}){ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {"name" : "t1", "size" : 11 }, { "name" : "t2", "size" : 12 } ] }

save()語句:

save() 方法通過傳入的文檔來替換已有文檔。文法格式如下:db.collection.save(   <document>,   {     writeConcern: <document>   })document:JSON格式樣本:更新name為zhangsan的密碼為123456use blogdb.user.save({ "_id" : ObjectId("574d9667ec9f7148b53f27d9"), "name":"zhangsan","password" : "123456" })

四、查詢文檔

db.table_name.find(query)query:json格式,可以使用操作符樣本:查詢ago大於20並且(name等於張三或password等於123456)的記錄db.col.find({"ago": {$gt:20}, $or: [{"name": "zhangsan"},{"password": "123456"}]}).pretty()db.col.find().pretty():以合理的格式顯示查詢的內容

mongodb的學習筆記一(集合和文檔的增刪改查)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.