標籤:
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的學習筆記一(集合和文檔的增刪改查)