0812 A

mongodb

增刪改查


增:

db.createCollection("name", {options:number}):顯式地創(chuàng)建集合

db.addUser("userName", "pwd123", true):添加用戶、設(shè)置密碼、是否只讀

db.users.save({name: ‘zhangsan', age: 25, sex: true}):添加數(shù)據(jù)集合

刪:

db.dropDatabase():刪除當(dāng)前使用的數(shù)據(jù)庫(kù)

db.removeUser("name"):刪除用戶

db.users.remove({age: 132}):刪除集合數(shù)據(jù)

查:

show dbs:查詢所有數(shù)據(jù)庫(kù)

db或db.getName():查詢當(dāng)前使用的數(shù)據(jù)庫(kù)

db.stats():顯示當(dāng)前db的狀態(tài)

db.version():顯示當(dāng)前版本

db.getMongo():查看當(dāng)前db的鏈接機(jī)器地址

db.name.isCapped():判斷name集合是否為定容量

db.printCollectionStats():顯示當(dāng)前db的所有聚集集合

db.auth("userName", "123123"):數(shù)據(jù)庫(kù)認(rèn)證(安全模式)

show users:顯示當(dāng)前所有用戶

db.userInfo.find():查詢所有記錄,相當(dāng)于:select* from userInfo

db.userInfo.distinct("name"):會(huì)過(guò)濾掉name中的相同數(shù)據(jù),相當(dāng)于:select distict name from userInfo

db.userInfo.find({"age": 22}):查詢age=22的記錄
相當(dāng)于: select * from userInfo where age = 22

db.userInfo.find({age: {$gt: 22}}):查詢age > 22的記錄
相當(dāng)于:select * from userInfo where age >22;

同理:gt:> gte:>= lt:< lte:<=

db.userInfo.find({age: {$gte: 23, $lte: 26}}):查詢age >= 23 并且 age <= 26

db.userInfo.find({name: /mongo/}):查詢name中包含 mongo的數(shù)據(jù)

db.userInfo.find({name: /^mongo/}):查詢name中以mongo開頭的

db.userInfo.find({}, {name: 1, age: 1}):查詢指定列name、age數(shù)據(jù)

db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}):、查詢指定列name、age數(shù)據(jù) 和 age > 25 的數(shù)據(jù)

db.userInfo.find().sort({age: 1}):按鍵值(age)升序,-1為降序

db.userInfo.find({name: 'zhangsan', age: 22}):查詢name = zhangsan, age = 22的數(shù)據(jù)

db.userInfo.find().limit(5):查詢前5條數(shù)據(jù)

db.userInfo.find().skip(10):查詢10條以后的數(shù)據(jù)

db.userInfo.find().limit(10).skip(5):查詢?cè)?-10之間的數(shù)據(jù)

db.userInfo.find({$or: [{age: 22}, {age: 25}]}):查找age = 22或age = 25;

db.userInfo.findOne()或db.userInfo.find().limit(1):查詢第一條數(shù)據(jù)

db.userInfo.find({age: {$gte: 25}}).count():查詢某個(gè)結(jié)果集的記錄條數(shù)

db.userInfo.find({sex: {$exists: true}}).count():按照某列進(jìn)行排序

改:

use name :切換/創(chuàng)建 數(shù)據(jù)庫(kù)
,當(dāng)創(chuàng)建一個(gè)集合(table)的時(shí)候會(huì)自動(dòng)創(chuàng)建當(dāng)前數(shù)據(jù)庫(kù)

db.getCollectionNames():得到當(dāng)前db的所有聚集集合

db.getCollection("name"):得到指定名稱的集合

db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true):update users set name = ‘changeName' where age = 25;
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true):update users set age = age + 50 where name = ‘Lisi';
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true):update users set age = age + 50, name = ‘hoho' where name = ‘Lisi';

其它操作

錯(cuò)誤:

查詢之前的錯(cuò)誤信息:
db.getPrevError();

清除錯(cuò)誤記錄:
db.resetError();

幫助:

help db.help()
db.yourColl.help()
db.youColl.find().help()
rs.help()

克?。?/h3>

db.cloneDatabase(“127.0.0.1”):將指定機(jī)器上的數(shù)據(jù)庫(kù)的數(shù)據(jù)克隆到當(dāng)前數(shù)據(jù)庫(kù)

db.copyDatabase("mydb", "temp", "127.0.0.1"):將本機(jī)的mydb的數(shù)據(jù)復(fù)制到temp數(shù)據(jù)庫(kù)中

修復(fù):

db.repairDatabase(): 修復(fù)當(dāng)前數(shù)據(jù)庫(kù)

索引:

創(chuàng)建索引:
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});

查詢當(dāng)前聚集集合所有索引:
db.userInfo.getIndexes();

查看總索引記錄大小:
db.userInfo.totalIndexSize();

讀取當(dāng)前集合的所有index信息:
db.users.reIndex();

刪除指定索引:
db.users.dropIndex("name_1");

刪除所有索引索引:
db.users.dropIndexes();

查詢修改刪除:

db.users.findAndModify({
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});
db.runCommand({ findandmodify : "users",
query: {age: {$gte: 25}},
sort: {age: -1},
update: {$set: {name: 'a2'}, $inc: {age: 2}},
remove: true
});

update 或 remove 其中一個(gè)是必須的參數(shù); 其他參數(shù)可選。

參數(shù) 詳解 默認(rèn)值
query 查詢過(guò)濾條件 {}
sort 如果多個(gè)文檔符合查詢過(guò)濾條件,將以該參數(shù)指定的排列方式選擇出排在首位的對(duì)象,該對(duì)象將被操作 {}
remove 若為true,被選中對(duì)象將在返回前被刪除 N/A
update 一個(gè) 修改器對(duì)象 N/A
new 若為true,將返回修改后的對(duì)象而不是原始對(duì)象。在刪除操作中,該參數(shù)被忽略。 false
upsert 創(chuàng)建新對(duì)象若查詢結(jié)果為空。 示例 (1.5.4+) false
fields 參見(jiàn)Retrieving a Subset of Fields (1.5.0+) All fields

注:函數(shù)不加括號(hào),貌似輸出源碼

express web

Request 對(duì)象 - request 對(duì)象表示 HTTP 請(qǐng)求,包含了請(qǐng)求查詢字符串,參數(shù),內(nèi)容,HTTP 頭部等屬性。常見(jiàn)屬性有:

req.app:當(dāng)callback為外部文件時(shí),用req.app訪問(wèn)express的實(shí)例

req.baseUrl:獲取路由當(dāng)前安裝的URL路徑

req.body / req.cookies:獲得「請(qǐng)求主體」/ Cookies

req.fresh / req.stale:判斷請(qǐng)求是否還「新鮮」

req.hostname / req.ip:獲取主機(jī)名和IP地址

req.originalUrl:獲取原始請(qǐng)求URL

req.params:獲取路由的parameters

req.path:獲取請(qǐng)求路徑

req.protocol:獲取協(xié)議類型

req.query:獲取URL的查詢參數(shù)串

req.route:獲取當(dāng)前匹配的路由

req.subdomains:獲取子域名

req.accpets():檢查請(qǐng)求的Accept頭的請(qǐng)求類型

req.acceptsCharsets / req.acceptsEncodings /

req.acceptsLanguages

req.get():獲取指定的HTTP請(qǐng)求頭

req.is():判斷請(qǐng)求頭Content-Type的MIME類型

Response 對(duì)象 - response 對(duì)象表示 HTTP 響應(yīng),即在接收到請(qǐng)求時(shí)向客戶端發(fā)送的 HTTP 響應(yīng)數(shù)據(jù)。常見(jiàn)屬性有:

res.app:同req.app一樣

res.append():追加指定HTTP頭

res.set()在res.append()后將重置之前設(shè)置的頭

res.cookie(name,value [,option]):設(shè)置Cookie

opition: domain / expires / httpOnly / maxAge / path / secure / signed

res.clearCookie():清除Cookie

res.download():傳送指定路徑的文件

res.get():返回指定的HTTP頭

res.json():傳送JSON響應(yīng)

res.jsonp():傳送JSONP響應(yīng)

res.location():只設(shè)置響應(yīng)的Location HTTP頭,不設(shè)置狀態(tài)碼或者close response

res.redirect():設(shè)置響應(yīng)的Location HTTP頭,并且設(shè)置狀態(tài)碼302

res.send():傳送HTTP響應(yīng)

res.sendFile(path [,options] [,fn]):傳送指定路徑的文件 -會(huì)自動(dòng)根據(jù)文件extension設(shè)定Content-Type

res.set():設(shè)置HTTP頭,傳入object可以一次設(shè)置多個(gè)頭

res.status():設(shè)置HTTP狀態(tài)碼

res.type():設(shè)置Content-Type的MIME類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容