摘要:超級(jí)用戶相關(guān)進(jìn)入數(shù)據(jù)庫(kù)增加或修改用戶密碼查看用戶列表用戶認(rèn)證刪除用戶查看所有用戶查看所有數(shù)據(jù)庫(kù)查看所有的查看各的狀態(tài)查看主從復(fù)制狀態(tài)修復(fù)數(shù)據(jù)庫(kù)設(shè)置記錄,查看拷貝數(shù)據(jù)庫(kù)刪除刪除當(dāng)前的數(shù)據(jù)庫(kù)增刪改返回?cái)?shù)據(jù)集的數(shù)據(jù)集返回?cái)?shù)據(jù)集的數(shù)據(jù)總數(shù)返回?cái)?shù)據(jù)集
1. 超級(jí)用戶相關(guān):
1.進(jìn)入數(shù)據(jù)庫(kù)admin use admin 2.增加或修改用戶密碼 db.addUser("name","pwd") 3. #查看用戶列表 db.system.users.find() 4. #用戶認(rèn)證 db.auth("name","pwd") 5. #刪除用戶 db.removeUser("name") 6. #查看所有用戶 show users 7. #查看所有數(shù)據(jù)庫(kù) show dbs 8. #查看所有的collection show collections 9. #查看各collection的狀態(tài) db.printCollectionStats() 10. #查看主從復(fù)制狀態(tài) db.printReplicationInfo() 11. #修復(fù)數(shù)據(jù)庫(kù) db.repairDatabase() 12. #設(shè)置記錄profiling,0=off 1=slow 2=all db.setProfilingLevel(1) 13. #查看profiling show profile 14. #拷貝數(shù)據(jù)庫(kù) db.copyDatabase("mail_addr","mail_addr_tmp") 15. #刪除collection db.mail_addr.drop() 16. #刪除當(dāng)前的數(shù)據(jù)庫(kù) db.dropDatabase()2. 增刪改
db.test.find({id:10}) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集 db.test.find({id:10}).count() 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)總數(shù) db.test.find({id:10}).limit(2) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集從第二條開始的數(shù)據(jù)集 db.test.find({id:10}).skip(8) 返回test數(shù)據(jù)集ID=10的數(shù)據(jù)集從0到第八條的數(shù)據(jù)集 db.test.find({id:10}).limit(2).skip(8) 返回test數(shù)據(jù)集ID=1=的數(shù)據(jù)集從第二條到第八條的數(shù)據(jù) db.test.find({id:10}).sort() 返回test數(shù)據(jù)集ID=10的排序數(shù)據(jù)集 db.test.findOne([query]) 返回符合條件的一條數(shù)據(jù) db.test.getDB() 返回此數(shù)據(jù)集所屬的數(shù)據(jù)庫(kù)名稱 db.test.getIndexes() 返回些數(shù)據(jù)集的索引信息 db.test.group({key:...,initial:...,reduce:...[,cond:...]}) db.test.mapReduce(mayFunction,reduceFunction,3、MongoDB語(yǔ)法與現(xiàn)有關(guān)系型數(shù)據(jù)庫(kù)SQL語(yǔ)法比較) db.test.remove(query) 在數(shù)據(jù)集中刪除一條數(shù)據(jù) db.test.renameCollection(newName) 重命名些數(shù)據(jù)集名稱 db.test.save(obj) 往數(shù)據(jù)集中插入一條數(shù)據(jù) db.test.stats() 返回此數(shù)據(jù)集的狀態(tài) db.test.storageSize() 返回此數(shù)據(jù)集的存儲(chǔ)大小 db.test.totalIndexSize() 返回此數(shù)據(jù)集的索引文件大小 db.test.totalSize() 返回些數(shù)據(jù)集的總大小 db.test.update(query,object[,upsert_bool]) 在此數(shù)據(jù)集中更新一條數(shù)據(jù) db.test.validate() 驗(yàn)證此數(shù)據(jù)集 db.test.getShardVersion() 返回?cái)?shù)據(jù)集共享版本號(hào)
MongoDB語(yǔ)法 MySql語(yǔ)法 db.test.find({"name":"foobar"}) <==> select * from test where name="foobar" db.test.find() <==> select * from test db.test.find({"ID":10}).count() <==> select count(*) from test where ID=10 db.test.find().skip(10).limit(20) <==> select * from test limit 10,20 db.test.find({"ID":{$in:[25,35,45]}}) <==> select * from test where ID in (25,35,45) db.test.find().sort({"ID":-1}) <==> select * from test order by ID desc db.test.distinct("name",{"ID":{$lt:20}}) <==> select distinct(name) from test where ID<20 db.test.group({key:{"name":true},cond:{"name":"foo"},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}}) <==> select name,sum(marks) from test group by name db.test.find("this.ID<20",{name:1}) <==> select name from test where ID<20 db.test.insert({"name":"foobar","age":25})<==>insert into test ("name","age") values("foobar",25) db.test.remove({}) <==> delete * from test db.test.remove({"age":20}) <==> delete test where age=20 db.test.remove({"age":{$lt:20}}) <==> elete test where age<20 db.test.remove({"age":{$lte:20}}) <==> delete test where age<=20 db.test.remove({"age":{$gt:20}}) <==> delete test where age>20 db.test.remove({"age":{$gte:20}}) <==> delete test where age>=20 db.test.remove({"age":{$ne:20}}) <==> delete test where age!=20 db.test.update({"name":"foobar"},{$set:{"age":36}}) <==> update test set age=36 where name="foobar" db.test.update({"name":"foobar"},{$inc:{"age":3}}) <==> update test set age=age+3 where name="foobar"4. 索引
1. #增加索引:1(ascending),-1(descending) 2. db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true}); 3. #索引子對(duì)象 4. db.user_addr.ensureIndex({"Al.Em": 1}) 5. #查看索引信息 6. db.foo.getIndexes() 7. db.foo.getIndexKeys() 8. #根據(jù)索引名刪除索引 9. db.user_addr.dropIndex("Al.Em_1")5. advanced queries:高級(jí)查詢
條件操作符 $gt : > $lt : < $gte: >= $lte: <= $ne : !=、<> $in : in $nin: not in $all: all $not: 反匹配(1.3.3及以上版本) 查詢 name <> "bruce" and age >= 18 的數(shù)據(jù) db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}}); 查詢 creation_date > "2010-01-01" and creation_date <= "2010-12-31" 的數(shù)據(jù) db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)}); 查詢 age in (20,22,24,26) 的數(shù)據(jù) db.users.find({age: {$in: [20,22,24,26]}}); 查詢 age取模10等于0 的數(shù)據(jù) db.users.find("this.age % 10 == 0"); 或者 db.users.find({age : {$mod : [10, 0]}}); 匹配所有 db.users.find({favorite_number : {$all : [6, 8]}}); 可以查詢出{name: "David", age: 26, favorite_number: [ 6, 8, 9 ] } 可以不查詢出{name: "David", age: 26, favorite_number: [ 6, 7, 9 ] } 查詢不匹配name=B*帶頭的記錄 db.users.find({name: {$not: /^B.*/}}); 查詢 age取模10不等于0 的數(shù)據(jù) db.users.find({age : {$not: {$mod : [10, 0]}}}); #返回部分字段 選擇返回age和_id字段(_id字段總是會(huì)被返回) db.users.find({}, {age:1}); db.users.find({}, {age:3}); db.users.find({}, {age:true}); db.users.find({ name : "bruce" }, {age:1}); 0為false, 非0為true 選擇返回age、address和_id字段 db.users.find({ name : "bruce" }, {age:1, address:1}); 排除返回age、address和_id字段 db.users.find({}, {age:0, address:false}); db.users.find({ name : "bruce" }, {age:0, address:false}); 數(shù)組元素個(gè)數(shù)判斷 對(duì)于{name: "David", age: 26, favorite_number: [ 6, 7, 9 ] }記錄 匹配db.users.find({favorite_number: {$size: 3}}); 不匹配db.users.find({favorite_number: {$size: 2}}); $exists判斷字段是否存在 查詢所有存在name字段的記錄 db.users.find({name: {$exists: true}}); 查詢所有不存在phone字段的記錄 db.users.find({phone: {$exists: false}}); $type判斷字段類型 查詢所有name字段是字符類型的 db.users.find({name: {$type: 2}}); 查詢所有age字段是整型的 db.users.find({age: {$type: 16}}); 對(duì)于字符字段,可以使用正則表達(dá)式 查詢以字母b或者B帶頭的所有記錄 db.users.find({name: /^b.*/i}); $elemMatch(1.3.1及以上版本) 為數(shù)組的字段中匹配其中某個(gè)元素 Javascript查詢和$where查詢 查詢 age > 18 的記錄,以下查詢都一樣 db.users.find({age: {$gt: 18}}); db.users.find({$where: "this.age > 18"}); db.users.find("this.age > 18"); f = function() {return this.age > 18} db.users.find(f); 排序sort() 以年齡升序asc db.users.find().sort({age: 1}); 以年齡降序desc db.users.find().sort({age: -1}); 限制返回記錄數(shù)量limit() 返回5條記錄 db.users.find().limit(5); 返回3條記錄并打印信息 db.users.find().limit(3).forEach(function(user) {print("my age is " + user.age)}); 結(jié)果 my age is 18 my age is 19 my age is 20 限制返回記錄的開始點(diǎn)skip() 從第3條記錄開始,返回5條記錄(limit 3, 5) db.users.find().skip(3).limit(5); 查詢記錄條數(shù)count() db.users.find().count(); db.users.find({age:18}).count(); 以下返回的不是5,而是user表中所有的記錄數(shù)量 db.users.find().skip(10).limit(5).count(); 如果要返回限制之后的記錄數(shù)量,要使用count(true)或者count(非0) db.users.find().skip(10).limit(5).count(true); 分組group() 假設(shè)test表只有以下一條數(shù)據(jù) { domain: "www.mongodb.org" , invoked_at: {d:"2009-11-03", t:"17:14:05"} , response_time: 0.05 , http_action: "GET /display/DOCS/Aggregation" } 使用group統(tǒng)計(jì)test表11月份的數(shù)據(jù)count:count(*)、total_time:sum(response_time)、avg_time:total_time/count; db.test.group( { cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}} , key: {http_action: true} , initial: {count: 0, total_time:0} , reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time } , finalize: function(out){ out.avg_time = out.total_time / out.count } } ); [ { "http_action" : "GET /display/DOCS/Aggregation", "count" : 1, "total_time" : 0.05, "avg_time" : 0.05 } ]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/18908.html
摘要:二中常用命令顯示數(shù)據(jù)庫(kù)列表顯示當(dāng)前數(shù)據(jù)庫(kù)中的集合類似關(guān)系數(shù)據(jù)庫(kù)中的表顯示用戶切換當(dāng)前數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)不存在則創(chuàng)建數(shù)據(jù)庫(kù)。注意操作同時(shí)可以創(chuàng)建數(shù)據(jù)庫(kù),如果一個(gè)不存在的數(shù)據(jù)庫(kù)名,則執(zhí)行后,會(huì)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫(kù)。如果指定字段,則會(huì)更新該的數(shù)據(jù)。 ..............................................................................
摘要:還原導(dǎo)出的表數(shù)據(jù)部分字段的表數(shù)據(jù)導(dǎo)入還原文件 一、 mongodump備份數(shù)據(jù)庫(kù) 1.一般常用的備份命令格式 mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d 數(shù)據(jù)庫(kù) -o 文件存在路徑 如果想導(dǎo)出所有數(shù)據(jù)庫(kù),可以去掉-d 2.導(dǎo)出數(shù)據(jù)庫(kù)[root@local ~]# mongodump -h 127.0.0.1 --port 30216 -d t...
摘要:?jiǎn)?dòng)允許后臺(tái)運(yùn)行,但是必須指定日志記錄文件路徑指定日志記錄文件路徑導(dǎo)出指定數(shù)據(jù)庫(kù)指定指定輸出文件名稱導(dǎo)出為格式指明需要導(dǎo)出哪些列指明導(dǎo)出格式為導(dǎo)入導(dǎo)入文件指明要導(dǎo)入的文件格式 啟動(dòng)MongoDB $mongod --fork --logpath=/data/log/r3.log--fork 允許mongod后臺(tái)運(yùn)行,但是必須指定日志記錄文件路徑(Enables a daemon mod...
摘要:常用命令查看當(dāng)前數(shù)據(jù)庫(kù)查看所有數(shù)據(jù)庫(kù)連接到數(shù)據(jù)庫(kù)查看當(dāng)前數(shù)據(jù)庫(kù)下所有的表查看表里的數(shù)據(jù)刪除當(dāng)前數(shù)據(jù)庫(kù)報(bào)錯(cuò)原因因?yàn)橹辽僖缘臄?shù)量進(jìn)行增長(zhǎng)當(dāng)磁盤空間不足時(shí)會(huì)報(bào)錯(cuò)解決方案在啟動(dòng)時(shí)加上參數(shù)例如或 MongoDB常用命令: db show dbs use xxx show collections db.yyy.find() db.dropDatabase() 報(bào)錯(cuò)Insufficient free...
摘要:既是數(shù)據(jù)庫(kù),又是內(nèi)存數(shù)據(jù)庫(kù),而且它是現(xiàn)在最強(qiáng)大最流行的數(shù)據(jù)庫(kù)。所以相對(duì)于的真內(nèi)存數(shù)據(jù)庫(kù)而言,只是將大部分的操作數(shù)據(jù)存在內(nèi)存中。 MongoDB既是NoSQL數(shù)據(jù)庫(kù),又是內(nèi)存數(shù)據(jù)庫(kù),而且它是現(xiàn)在最強(qiáng)大、最流行的NoSQL數(shù)據(jù)庫(kù)。區(qū)別與別的NoSQL數(shù)據(jù)庫(kù),MongoDB主要是基于Documents文檔(即一條JSON數(shù)據(jù))的。 MongoDB的特點(diǎn): NoSQL數(shù)據(jù)庫(kù) 內(nèi)存數(shù)據(jù)庫(kù) 存儲(chǔ)...
摘要:如已存在數(shù)據(jù),再次進(jìn)行插入操作時(shí),會(huì)報(bào)主鍵重復(fù)的錯(cuò)誤提示會(huì)把修改為。使用函數(shù),參數(shù)指定查詢條件,不指定條件則查詢?nèi)坑涗洝D挲g為或者名字為,年齡在中,。 基本命令 顯示當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器上的數(shù)據(jù)庫(kù)show dbs 切換到指定數(shù)據(jù)庫(kù)的上下文,可以在此上下文中管理testdb數(shù)據(jù)庫(kù)以及其中的集合等use testdb 顯示數(shù)據(jù)庫(kù)中所有的集合(collection)show collecti...
閱讀 1460·2021-11-22 14:44
閱讀 2843·2021-11-16 11:44
閱讀 3206·2021-10-13 09:40
閱讀 1980·2021-10-08 10:04
閱讀 2363·2021-09-24 10:28
閱讀 2909·2021-09-06 15:02
閱讀 2957·2019-08-30 15:52
閱讀 2392·2019-08-30 13:20