附加命令:
創(chuàng)新互聯(lián)公司是一家專業(yè)提供江山企業(yè)網(wǎng)站建設,專注與做網(wǎng)站、成都網(wǎng)站建設、html5、小程序制作等業(yè)務。10年已為江山眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。1、進入前端操作命令
./mongo [ip:端口]說明:默認會自動選本地,端口27017
2、顯示所有的庫
> show dbs; 或者 show databases;3、選擇庫
> use 庫名;4、顯示庫所有的集合
> show collections; 或者 show tables;5、顯示當前使用的庫
> db;一、操作數(shù)據(jù)庫、文檔
1.1、數(shù)據(jù)庫操作
1、創(chuàng)建數(shù)據(jù)庫:MongoDB沒有專門創(chuàng)建數(shù)據(jù)庫的語句,可以使用“use” 來使用某個數(shù)據(jù)庫,如果要使用
的數(shù)據(jù)庫不存在,那么將會創(chuàng)建一個,會在真正向該庫加入文檔后,保存成為文件。
> use db_test;2、刪除數(shù)據(jù)庫,命令:db.dropDatabase(),注意先要進入到需刪除的庫
> use db_test; switched to db db_test > db.dropDatabase(); { "ok" : 1 } >1.2、集合操作
1、創(chuàng)建集合:在MongoDB中不用創(chuàng)建集合,因為沒有固定的結(jié)構(gòu),直接使用db.集合名稱.命令 來操作就可以了。如果非要顯示創(chuàng)建集合的話,用:db.createCollecion(“集合名稱”);
2、刪除集合,命令:dorp
> db.test1.drop();1.3、查看集合的狀態(tài)信息
db.集合名.stats();
二、增刪改
2.1、添加
db.集合名稱.insert(數(shù)據(jù));
> db.test1.insert({"username":"zhangsan",age:2});insert方法,可以單獨插入一個文檔,也可以插入多個,用“[ ]”即可。注意:
1:MongoDB會為每個沒有“_id”字段的文檔自動添加一個”_id”字段
2:每個Doc必須小于16MB
3:可以在shell中執(zhí)行Object.bsonsize(文檔名稱);來查看size大小
2.2、刪除
命令:remove,可以按條件來刪除
只是刪除文檔,集合還在,如果使用 drop命令,會連帶集合和索引都刪掉
> db.test1.remove({age:2});注意:如果使用remove沒有帶條件,則會刪除此集合中所有的文檔。
2.3、更新
db.集合名稱. update(條件,新的文檔[,boolean,boolean]);
> db.test1.update({"userId":"1"},{"userId":"1","username":"zhangsan","age":10});問題:
1、這里如果有多個文檔匹配,只會更新第一個文檔。
2、這個修改的是整個文檔
解決:
使用修改器
更新修改器,用來做復雜的更新操作
1:$set :指定一個字段的值,如果字段不存在,會創(chuàng)建一個
> db.test1.update({"userId":"1"},{"$set":{"username":"zhangsan"}},0,1);說明:如果userId為1,則更新其username為zhangsan
> db.test1.update({"userId":"1"},{$set:{"score.1":7}});說明:更新數(shù)組score的索引為1的值為7,索引從0開始。
2:$unset :刪掉某個字段
> db.test1.update({"userId":"1"},{"$unset":{"username":1}},0,1);3:$inc :用來增加已有鍵的值,如果字段不存在,會創(chuàng)建一個。只能用于整型、長整型、或雙精度浮點型的值。
> db.test1.update({"userId":"1"},{"$inc":{"age":3}},0,1);說明:如果userId為1,則將其age的值增加3
4:$push:向已有數(shù)組的末尾加入一個元素,要是沒有就新建一個數(shù)組
> db.test1.update({"userId":"1"},{"$push":{"score":1}},0,1);5:$each:通過一次$push來操作多個值
> db.test1.update({"userId":"1"},{"$push":{"score":{$each:[4,5,6]}}},0,1);6:$slice:限制數(shù)組只包含最后加入的n個元素,其值必須是負整數(shù)
> db.test1.update({"userId":"1"},{"$push":{"score":{$each:[7,8,9],$slice:-5}}});7:$sort:對數(shù)組中的元素,按照指定的字段來對數(shù)據(jù)進行排序(1為升序,-1為降序),然后再按照slice刪除。
注意:不能只將$slice或者$sort與$push配合使用,且必須使用$each
> db.test1.update({"userId":"1"},{"$push":{"score":{$each:[1,2,3],$slice:-5,$sort:-1}}});8:$ne:判斷一個值是否在數(shù)組中,如果不在則添加進去
> db.test1.update({"userId":"1","score":{$ne:4}},{$push:{"score":4}});9:$addToSet:將數(shù)組作為數(shù)據(jù)集使用,以保證數(shù)組內(nèi)的元素不會重復
> db.test1.update({"userId":"1"},{$addToSet:{"score":8}});10:$pop :從數(shù)組一端刪除元素,{$pop:{key:1}},從末尾刪掉一個,-1則從頭部刪除
> db.test1.update({"userId":"1"},{$pop:{score:1}});11:$pull:按照條件來刪除所有匹配的元素
> db.test1.update({"userId":"1"},{$pull:{score:7}});12:$:用來修改第一個匹配的元素
> db.test1.update({"score.0":5},{$set:{"score.$":7}});說明:如果score的第0個索引值為5,則更新score的第0個索引值為7
三、補充方法
3.1、save方法
如果文檔存在就更新,不存在就新建,主要根據(jù)”_id”來判斷。
添加:
更新:
3.2、upsert方法
找到了符合條件的文檔就更新,否則會以這個條件和更新文檔來創(chuàng)建一個新文檔。
指定update方法的第三個參數(shù)為true,可表示是upsert
3.3、更新多個文檔
MongoDB默認只更新符合條件的第一個文檔,要更新所有匹配的文檔,把第4個參數(shù)
設置為true。注意:
1:只能用在$XXX的操作中
2:最好每次都顯示的指定update的第4個參數(shù),以防止服務器使用默認行為
3.4、查詢更新了多少個文檔
使用命令:getLastError ,返回最后一次操作的相關信息,里面的n就是更新的文
檔的數(shù)量。形如:db.runCommand({"getLastError":1});
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:MongoDB(2):增刪改操作-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.rwnh.cn/article8/ccipop.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、微信小程序、靜態(tài)網(wǎng)站、移動網(wǎng)站建設、網(wǎng)站排名、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容