摘要:超級用戶相關進入數據庫增加或修改用戶密碼查看用戶列表用戶認證刪除用戶查看所有用戶查看所有數據庫查看所有的查看各的狀態(tài)查看主從復制狀態(tài)修復數據庫設置記錄,查看拷貝數據庫刪除刪除當前的數據庫增刪改返回數據集的數據集返回數據集的數據總數返回數據集
1. 超級用戶相關:
1.進入數據庫admin use admin 2.增加或修改用戶密碼 db.addUser("name","pwd") 3. #查看用戶列表 db.system.users.find() 4. #用戶認證 db.auth("name","pwd") 5. #刪除用戶 db.removeUser("name") 6. #查看所有用戶 show users 7. #查看所有數據庫 show dbs 8. #查看所有的collection show collections 9. #查看各collection的狀態(tài) db.printCollectionStats() 10. #查看主從復制狀態(tài) db.printReplicationInfo() 11. #修復數據庫 db.repairDatabase() 12. #設置記錄profiling,0=off 1=slow 2=all db.setProfilingLevel(1) 13. #查看profiling show profile 14. #拷貝數據庫 db.copyDatabase("mail_addr","mail_addr_tmp") 15. #刪除collection db.mail_addr.drop() 16. #刪除當前的數據庫 db.dropDatabase()2. 增刪改
db.test.find({id:10}) 返回test數據集ID=10的數據集 db.test.find({id:10}).count() 返回test數據集ID=10的數據總數 db.test.find({id:10}).limit(2) 返回test數據集ID=10的數據集從第二條開始的數據集 db.test.find({id:10}).skip(8) 返回test數據集ID=10的數據集從0到第八條的數據集 db.test.find({id:10}).limit(2).skip(8) 返回test數據集ID=1=的數據集從第二條到第八條的數據 db.test.find({id:10}).sort() 返回test數據集ID=10的排序數據集 db.test.findOne([query]) 返回符合條件的一條數據 db.test.getDB() 返回此數據集所屬的數據庫名稱 db.test.getIndexes() 返回些數據集的索引信息 db.test.group({key:...,initial:...,reduce:...[,cond:...]}) db.test.mapReduce(mayFunction,reduceFunction,3、MongoDB語法與現(xiàn)有關系型數據庫SQL語法比較) db.test.remove(query) 在數據集中刪除一條數據 db.test.renameCollection(newName) 重命名些數據集名稱 db.test.save(obj) 往數據集中插入一條數據 db.test.stats() 返回此數據集的狀態(tài) db.test.storageSize() 返回此數據集的存儲大小 db.test.totalIndexSize() 返回此數據集的索引文件大小 db.test.totalSize() 返回些數據集的總大小 db.test.update(query,object[,upsert_bool]) 在此數據集中更新一條數據 db.test.validate() 驗證此數據集 db.test.getShardVersion() 返回數據集共享版本號
MongoDB語法 MySql語法 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. #索引子對象 4. db.user_addr.ensureIndex({"Al.Em": 1}) 5. #查看索引信息 6. db.foo.getIndexes() 7. db.foo.getIndexKeys() 8. #根據索引名刪除索引 9. db.user_addr.dropIndex("Al.Em_1")5. advanced queries:高級查詢
條件操作符 $gt : > $lt : < $gte: >= $lte: <= $ne : !=、<> $in : in $nin: not in $all: all $not: 反匹配(1.3.3及以上版本) 查詢 name <> "bruce" and age >= 18 的數據 db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}}); 查詢 creation_date > "2010-01-01" and creation_date <= "2010-12-31" 的數據 db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)}); 查詢 age in (20,22,24,26) 的數據 db.users.find({age: {$in: [20,22,24,26]}}); 查詢 age取模10等于0 的數據 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 的數據 db.users.find({age : {$not: {$mod : [10, 0]}}}); #返回部分字段 選擇返回age和_id字段(_id字段總是會被返回) 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}); 數組元素個數判斷 對于{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}}); 對于字符字段,可以使用正則表達式 查詢以字母b或者B帶頭的所有記錄 db.users.find({name: /^b.*/i}); $elemMatch(1.3.1及以上版本) 為數組的字段中匹配其中某個元素 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}); 限制返回記錄數量limit() 返回5條記錄 db.users.find().limit(5); 返回3條記錄并打印信息 db.users.find().limit(3).forEach(function(user) {print("my age is " + user.age)}); 結果 my age is 18 my age is 19 my age is 20 限制返回記錄的開始點skip() 從第3條記錄開始,返回5條記錄(limit 3, 5) db.users.find().skip(3).limit(5); 查詢記錄條數count() db.users.find().count(); db.users.find({age:18}).count(); 以下返回的不是5,而是user表中所有的記錄數量 db.users.find().skip(10).limit(5).count(); 如果要返回限制之后的記錄數量,要使用count(true)或者count(非0) db.users.find().skip(10).limit(5).count(true); 分組group() 假設test表只有以下一條數據 { 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)計test表11月份的數據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 } ]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/18908.html
摘要:二中常用命令顯示數據庫列表顯示當前數據庫中的集合類似關系數據庫中的表顯示用戶切換當前數據庫,如果數據庫不存在則創(chuàng)建數據庫。注意操作同時可以創(chuàng)建數據庫,如果一個不存在的數據庫名,則執(zhí)行后,會創(chuàng)建對應數據庫。如果指定字段,則會更新該的數據。 ..............................................................................
摘要:還原導出的表數據部分字段的表數據導入還原文件 一、 mongodump備份數據庫 1.一般常用的備份命令格式 mongodump -h IP --port 端口 -u 用戶名 -p 密碼 -d 數據庫 -o 文件存在路徑 如果想導出所有數據庫,可以去掉-d 2.導出數據庫[root@local ~]# mongodump -h 127.0.0.1 --port 30216 -d t...
摘要:啟動允許后臺運行,但是必須指定日志記錄文件路徑指定日志記錄文件路徑導出指定數據庫指定指定輸出文件名稱導出為格式指明需要導出哪些列指明導出格式為導入導入文件指明要導入的文件格式 啟動MongoDB $mongod --fork --logpath=/data/log/r3.log--fork 允許mongod后臺運行,但是必須指定日志記錄文件路徑(Enables a daemon mod...
摘要:常用命令查看當前數據庫查看所有數據庫連接到數據庫查看當前數據庫下所有的表查看表里的數據刪除當前數據庫報錯原因因為至少以的數量進行增長當磁盤空間不足時會報錯解決方案在啟動時加上參數例如或 MongoDB常用命令: db show dbs use xxx show collections db.yyy.find() db.dropDatabase() 報錯Insufficient free...
摘要:既是數據庫,又是內存數據庫,而且它是現(xiàn)在最強大最流行的數據庫。所以相對于的真內存數據庫而言,只是將大部分的操作數據存在內存中。 MongoDB既是NoSQL數據庫,又是內存數據庫,而且它是現(xiàn)在最強大、最流行的NoSQL數據庫。區(qū)別與別的NoSQL數據庫,MongoDB主要是基于Documents文檔(即一條JSON數據)的。 MongoDB的特點: NoSQL數據庫 內存數據庫 存儲...
摘要:如已存在數據,再次進行插入操作時,會報主鍵重復的錯誤提示會把修改為。使用函數,參數指定查詢條件,不指定條件則查詢全部記錄。年齡為或者名字為,年齡在中,。 基本命令 顯示當前數據庫服務器上的數據庫show dbs 切換到指定數據庫的上下文,可以在此上下文中管理testdb數據庫以及其中的集合等use testdb 顯示數據庫中所有的集合(collection)show collecti...
閱讀 1471·2021-11-22 14:44
閱讀 2850·2021-11-16 11:44
閱讀 3218·2021-10-13 09:40
閱讀 1993·2021-10-08 10:04
閱讀 2372·2021-09-24 10:28
閱讀 2919·2021-09-06 15:02
閱讀 2966·2019-08-30 15:52
閱讀 2403·2019-08-30 13:20