最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
MongoDb基礎(chǔ)命令

一些基礎(chǔ)忘記隨時(shí)查看。。

公司專(zhuān)注于為企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、商城網(wǎng)站建設(shè),小程序定制開(kāi)發(fā),軟件按需網(wǎng)站制作等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶(hù)的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶(hù)設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

#整備恢復(fù)

mongodump --port 20001 --authenticationDatabase=admin -u *  -d lvlv -c lvlv -o /home

mongorestore --drop  --host 172.16.201.74  --port 20001 --authenticationDatabase=admin -umgbackup -d test /tmp/liding/test/liding.bson

#基于時(shí)間備份oplog

mongodump --port 20001  --authenticationDatabase=admin -u* -d local -c oplog.rs -q 'ts:{$lt:Timestamp(1462830369,1),$gt: Timestamp(1462821613, 1)}}' -o /tmp/lidddd

#將oplog恢復(fù)到臨時(shí)庫(kù)

mongorestore -u* --authenticationDatabase=admin --host 172.16.201.73 --port 27017 -d local -c oplog.rs  /data/backup/oplog1/local/oplog.rs.bson

 

#從臨時(shí)庫(kù)重放oplog  

mongooplog --port 20001 -u* --authenticationDatabase=admin --from=172.16.201.73:27017 

oplog查找

db.oplog.rs.find({ts:{$lt:Timestamp(1462917498, 1),$gt:Timestamp(1462918425, 1)}}).pretty()

use local 

 db.oplog.rs.find()

date -d @1361542596 +"%Y-%m-%d %H:%M:%S"

 for (var i=0;i<1000;i++){db.lvlv.save({"xywy":i})}

 

 

 sql="db.getReplicationInfo();"

echo "$sql"|/usr/local/xywy/MongoDB-3.0.8/bin/mongo  127.0.0.1:20001/admin -u* -pC^8cE#1RvX5rBg0 --authenticationDatabase=admin --shell

添加管理用戶(hù):

 

use admin

db.createUser(

  {

    user: "*",

    pwd: "*****",

    roles: [ { role: "root", db: "admin" } ]

  }

)

 

添加備份用戶(hù):

use admin

db.createUser(

  {

    user: "mgbackup",

    pwd: "*********",

    roles: [ { role: "backup", db: "admin" }, { role: "restore", db: "admin" } ]

  }

)

添加日常操作用戶(hù):

use admin

db.createUser(

  {

    user: "mgadmin",

    pwd: "*****",

    roles: [ { role: "readWriteAnyDatabase", db:admin } ]

  }

)

 

 

添加讀寫(xiě)用戶(hù):

 

use admin

db.createUser(

 {

   user: "liuyunsong",

   pwd: "*****",

   roles: [

      { role: "rw", db: "123" }

   ]

 }

)

 

修改用戶(hù)權(quán)限:

use admin

db.runCommand(

  {

    updateUser:"liuyaxin",

    pwd:"****",

         roles: [

    { role: "read", db: "123" }

         ]

  }

)

 

刪除用戶(hù):

use 123

db.dropUser("123")

 

刪除一個(gè)庫(kù)下所有用戶(hù):

use 123

db. dropAllUsers ()

 

對(duì)用戶(hù)添加角色:

use 123

db.runCommand( { grantRolesToUser: "*",

                 roles: [

                    { role: "admin", db: "admin"}

                 ]

             } )

 

對(duì)用戶(hù)移除角色:

use 123

db.runCommand( { revokeRolesFromUser: "liuyaxin",

                 roles: [

                    { role: "read", db: "234"}

                 ]

             } )

創(chuàng)建角色:

use admin

db.runCommand({ createRole: "rw",

  privileges: [

    { resource: { db: "123", collection: "" }, actions: [ "find", "update", "insert", "remove" ] }

  ],

  roles: [

    { role: "read", db: "admin" }

  ]

})

修改角色權(quán)限:

use admin

db.runCommand(

   {

     updateRole: "rw",

     privileges:

         [

           {

             resource: { db: "123", collection: "" },

             actions: [ "find" , "update", "insert", "remove" ]

           }

         ],

     roles:

         [

           { role: "read", db: "admin" }

         ]

   }

)

 

刪除角色:

use admin

db.runCommand(

   {

     dropRole: "rw",

     writeConcern: { w: "majority" }

   }

)

刪除所有角色:

Use 123

db.runCommand(

   {

     dropAllRolesFromDatabase: 1,

     writeConcern: { w: "majority" }

   }

)

為角色增加權(quán)限:

use 123

db.runCommand(

   {

     grantPrivilegesToRole: "rw",

     privileges: [

         {

           resource: { db: "123", collection: "" }, actions: [ "find" ]

         }

     ]

   }

)

移除角色權(quán)限:

Use 123

db.runCommand(

   {

     revokePrivilegesFromRole: "rw",

     privileges:

      [

        {

          resource: { db: "123", collection: "" },

          actions: [ "insert", "find" ]

        }

      ]

   }

)

刷新權(quán)限:

Use admin

db.runCommand( { invalidateUserCache: 1 } )

1、數(shù)據(jù)庫(kù)中查詢(xún)業(yè)務(wù)人員給的賬號(hào)在數(shù)據(jù)庫(kù)中是否存在

use database

show users

2、根據(jù)業(yè)務(wù)開(kāi)發(fā)人員提出的需求授權(quán)

讀寫(xiě)用戶(hù)名:庫(kù)名

先定義讀寫(xiě)角色

use 庫(kù)名

db.runCommand({ createRole: "rw",

privileges: [

{ resource: { db: "庫(kù)名", collection: "" }, actions: [ "find", "update", "insert", "remove","listCollections"] }

],

roles: [

]

})

再加用戶(hù)

use 庫(kù)名

db.createUser(

{

user: "庫(kù)名",

pwd: "*****",

roles: [

{ role: "rw", db: "庫(kù)名" }

]

}

)

只讀用戶(hù):庫(kù)名_r

先定義只讀角色

use 庫(kù)名

db.runCommand({ createRole: "r",

privileges: [

{ resource: { db: "庫(kù)名", collection: "" }, actions: [ "find","listCollections" ] }

],

roles: [

]

})

在添加用戶(hù)

use 庫(kù)名

db.createUser(

{

user: "庫(kù)名_r",

pwd: "************",

roles: [

{ role: "r", db: "庫(kù)名" }

]

}

)

3、檢驗(yàn)授權(quán)有無(wú)生效 

使用授權(quán)的用戶(hù)登錄數(shù)據(jù)庫(kù),查看該庫(kù)權(quán)限是否正確

use 庫(kù)名

db.auth("""")

4、將授權(quán)好的用戶(hù)名密碼發(fā)給該項(xiàng)目負(fù)責(zé)人同時(shí)發(fā)給dba組存檔,格式如下

idc:xx 主庫(kù) ip:port 從庫(kù) ip:port  

數(shù)據(jù)庫(kù): databases 

讀寫(xiě)用戶(hù): databases 讀寫(xiě)密碼: xxx

只讀用戶(hù): databases_r 只讀密碼: xxx

管理用戶(hù): database_admin 管理密碼: xxx

->use Admin         (切換到創(chuàng)建用戶(hù))

->db.TestDb          (創(chuàng)建數(shù)據(jù)庫(kù))

->db.addUser(“userName”,”P(pán)wd”)    創(chuàng)建用戶(hù)

->db.auth(“userName”,”P(pán)wd”)       設(shè)置用戶(hù)為允許連接的用戶(hù)

->db.createCollection(“TableName”)                                     創(chuàng)建表

->showcollections                          查看表是否創(chuàng)建成功

->db.TableName.Save({age:1})                 添加數(shù)據(jù)

->db.TableName.find()                        查看添加的數(shù)據(jù)是否成功(如果沒(méi)有查詢(xún)到任何的結(jié)果,說(shuō)明添加失?。?/p>

創(chuàng)建數(shù)據(jù)庫(kù)

語(yǔ)法

MongoDB 創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法格式如下:

use DATABASE_NAME

注:該命令只是在內(nèi)存中臨時(shí)創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建后如果沒(méi)有寫(xiě)入操作退出后會(huì)在內(nèi)存中釋放

刪除數(shù)據(jù)庫(kù)

語(yǔ)法

MongoDB 刪除數(shù)據(jù)庫(kù)的語(yǔ)法格式如下:

db.dropDatabase()

注:刪除庫(kù)之前一定要先use database

插入文檔

MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語(yǔ)法如下:

db.COLLECTION_NAME.insert({document})

MongoDB 更新文檔

MongoDB 使用 update() 和 save() 方法來(lái)更新集合中的文檔。接下來(lái)讓我們?cè)敿?xì)來(lái)看下兩個(gè)函數(shù)的應(yīng)用及其區(qū)別。

update() 方法

update() 方法用于更新已存在的文檔。語(yǔ)法格式如下:

db.collection.update( , , { upsert: , multi: , writeConcern: } )

參數(shù)說(shuō)明:

query : update的查詢(xún)條件,類(lèi)似sql update查詢(xún)內(nèi)where后面的。

update : update的對(duì)象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢(xún)內(nèi)set后面的

upsert : 可選,這個(gè)參數(shù)的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認(rèn)是false,不插入。

multi : 可選,mongodb 默認(rèn)是false,只更新找到的第一條記錄,如果這個(gè)參數(shù)為true,就把按條件查出來(lái)多條記錄全部更新。

writeConcern :可選,拋出異常的級(jí)別。

save() 方法

save() 方法通過(guò)傳入的文檔來(lái)替換已有文檔。語(yǔ)法格式如下:

db.collection.save( , { writeConcern: } )

MongoDB 刪除文檔

MongoDB remove()函數(shù)是用來(lái)移除集合中的數(shù)據(jù)。

在執(zhí)行remove()函數(shù)前先執(zhí)行find()命令來(lái)判斷執(zhí)行的條件是否正確,這是一個(gè)比較好的習(xí)慣。

語(yǔ)法

remove() 方法的基本語(yǔ)法格式如下所示:

db.collection.remove( , { justOne: , writeConcern: } )

參數(shù)說(shuō)明:

query :(可選)刪除的文檔的條件。

justOne : (可選)如果設(shè)為 true 或 1,則只刪除一個(gè)文檔。

writeConcern :(可選)拋出異常的級(jí)別。

查詢(xún)文檔

語(yǔ)法

MongoDB 查詢(xún)數(shù)據(jù)的語(yǔ)法格式如下:

>db.COLLECTION_NAME.find()

find() 方法以非結(jié)構(gòu)化的方式來(lái)顯示所有文檔。

如果你需要以易讀的方式來(lái)讀取數(shù)據(jù),可以使用 pretty() 方法,語(yǔ)法格式如下:

>db.col.find().pretty()

MongoDB 與 RDBMS Where 語(yǔ)句比較

如果你熟悉常規(guī)的 SQL 數(shù)據(jù),通過(guò)下表可以更好的理解 MongoDB 的條件語(yǔ)句查詢(xún):

等于{:}db.col.find({"by":"xywydba"}).pretty()where by = 'xywydba'

小于{:{$lt:}}db.col.find({"likes":{$lt:50}}).pretty()where likes < 50

小于或等于{:{$lte:}}db.col.find({"likes":{$lte:50}}).pretty()where likes <= 50

大于{:{$gt:}}db.col.find({"likes":{$gt:50}}).pretty()where likes > 50

大于或等于{:{$gte:}}db.col.find({"likes":{$gte:50}}).pretty()where likes >= 50

不等于{:{$ne:}}db.col.find({"likes":{$ne:50}}).pretty()where likes != 50

操作

格式

范例

RDBMS中的類(lèi)似語(yǔ)句

MongoDB AND 條件

MongoDB 的 find() 方法可以傳入多個(gè)鍵(key),每個(gè)鍵(key)以逗號(hào)隔開(kāi),及常規(guī) SQL 的 AND 條件。

語(yǔ)法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

 

MongoDB OR 條件

 

MongoDB OR 條件語(yǔ)句使用了關(guān)鍵字 $or,語(yǔ)法格式如下:

 

>db.col.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()

 

MongoDB Limit與Skip方法

MongoDB Limit() 方法

如果你需要在MongoDB中讀取指定數(shù)量的數(shù)據(jù)記錄,可以使用MongoDB的Limit方法,limit()方法接受一個(gè)數(shù)字參數(shù),該參數(shù)指定從MongoDB中讀取的記錄條數(shù)。

語(yǔ)法

limit()方法基本語(yǔ)法如下所示:

>db.COLLECTION_NAME.find().limit(NUMBER)

MongoDB Skip() 方法

我們除了可以使用limit()方法來(lái)讀取指定數(shù)量的數(shù)據(jù)外,還可以使用skip()方法來(lái)跳過(guò)指定數(shù)量的數(shù)據(jù),skip方法同樣接受一個(gè)數(shù)字參數(shù)作為跳過(guò)的記錄條數(shù)。

語(yǔ)法

skip() 方法腳本語(yǔ)法格式如下:

>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

MongoDB 排序

MongoDB sort()方法

在MongoDB中使用使用sort()方法對(duì)數(shù)據(jù)進(jìn)行排序,sort()方法可以通過(guò)參數(shù)指定排序的字段,并使用 1 和 -1 來(lái)指定排序的方式,其中 1 為升序排列,而-1是用于降序排列。

語(yǔ)法

sort()方法基本語(yǔ)法如下所示:

>db.COLLECTION_NAME.find().sort({KEY:1})

 

MongoDB 聚合

MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計(jì)平均值,求和等),并返回計(jì)算后的數(shù)據(jù)結(jié)果。有點(diǎn)類(lèi)似sql語(yǔ)句中的 count(*)。

aggregate() 方法

MongoDB中聚合的方法使用aggregate()。

語(yǔ)法

aggregate() 方法的基本語(yǔ)法格式如下所示:

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

下表展示了一些聚合的表達(dá)式:

表達(dá)式

描述

實(shí)例

$sum計(jì)算總和。db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])

$avg計(jì)算平均值db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])

$min獲取集合中所有文檔對(duì)應(yīng)值得最小值。db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])

$max獲取集合中所有文檔對(duì)應(yīng)值得最大值。db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])

$push在結(jié)果文檔中插入值到一個(gè)數(shù)組中。db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])

$addToSet在結(jié)果文檔中插入值到一個(gè)數(shù)組中,但不創(chuàng)建副本。db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])

$first根據(jù)資源文檔的排序獲取第一個(gè)文檔數(shù)據(jù)。db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])

$last根據(jù)資源文檔的排序獲取最后一個(gè)文檔數(shù)據(jù)db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

管道的概念

管道在Unix和Linux中一般用于將當(dāng)前命令的輸出結(jié)果作為下一個(gè)命令的參數(shù)。

MongoDB的聚合管道將MongoDB文檔在一個(gè)管道處理完畢后將結(jié)果傳遞給下一個(gè)管道處理。管道操作是可以重復(fù)的。

表達(dá)式:處理輸入文檔并輸出。表達(dá)式是無(wú)狀態(tài)的,只能用于計(jì)算當(dāng)前聚合管道的文檔,不能處理其它的文檔。

這里我們介紹一下聚合框架中常用的幾個(gè)操作:

$project:修改輸入文檔的結(jié)構(gòu)??梢杂脕?lái)重命名、增加或刪除域,也可以用于創(chuàng)建計(jì)算結(jié)果以及嵌套文檔。

$match:用于過(guò)濾數(shù)據(jù),只輸出符合條件的文檔。$match使用MongoDB的標(biāo)準(zhǔn)查詢(xún)操作。

$limit:用來(lái)限制MongoDB聚合管道返回的文檔數(shù)。

$skip:在聚合管道中跳過(guò)指定數(shù)量的文檔,并返回余下的文檔。

$unwind:將文檔中的某一個(gè)數(shù)組類(lèi)型字段拆分成多條,每條包含數(shù)組中的一個(gè)值。

$group:將集合中的文檔分組,可用于統(tǒng)計(jì)結(jié)果。

$sort:將輸入文檔排序后輸出。

$geoNear:輸出接近某一地理位置的有序文檔。

管道操作符實(shí)例

1.$project實(shí)例

 

db.article.aggregate( { $project : { title : 1 , author : 1 , }} );

 

2.$match實(shí)例

 

db.articles.aggregate( [ { $match : { score : { $gt : 70, $lte : 90 } } }, { $group: { _id: null, count: { $sum: 1 } } } ] );

3.$skip實(shí)例

db.article.aggregate( { $skip : 5 });

mongoDB常用命令

1、與Mql對(duì)照

MySQL

MongoDB

說(shuō)明

mysqld

mongod

服務(wù)器守護(hù)進(jìn)程

mysql

mongo

客戶(hù)端工具

mysqldump

mongodump

邏輯備份工具

mysql

mongorestore

邏輯恢復(fù)工具

 

db.repairDatabase()

修復(fù)數(shù)據(jù)庫(kù)

mysqldump

mongoexport

數(shù)據(jù)導(dǎo)出工具

source

mongoimport

數(shù)據(jù)導(dǎo)入工具

grant * privileges on *.* to …

Db.addUser()

Db.auth()

新建用戶(hù)并權(quán)限

show databases

show dbs

顯示庫(kù)列表

Show tables

Show collections

顯示表列表

Show slave status

Rs.status

查詢(xún)主從狀態(tài)

Create table users(a int, b int)

db.createCollection("mycoll", {capped:true,

size:100000}) 另:可隱式創(chuàng)建表。

創(chuàng)建表

Create INDEX idxname ON users(name)

db.users.ensureIndex({name:1})

創(chuàng)建索引

Create INDEX idxname ON users(name,ts DESC)

db.users.ensureIndex({name:1,ts:-1})

創(chuàng)建索引

Insert into users values(1, 1)

db.users.insert({a:1, b:1})

插入記錄

Select a, b from users

db.users.find({},{a:1, b:1})

查詢(xún)表

Select * from users

db.users.find()

查詢(xún)表

Select * from users where age=33

db.users.find({age:33})

條件查詢(xún)

Select a, b from users where age=33

db.users.find({age:33},{a:1, b:1})

條件查詢(xún)

select * from users where age<33

db.users.find({'age':{$lt:33}})

條件查詢(xún)

select * from users where age>33 and age<=40

db.users.find({'age':{$gt:33,$lte:40}})

條件查詢(xún)

select * from users where a=1 and b='q'

db.users.find({a:1,b:'q'})

條件查詢(xún)

select * from users where a=1 or b=2

db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )

條件查詢(xún)

select * from users limit 1

db.users.findOne()

條件查詢(xún)

select * from users where name like "%Joe%"

db.users.find({name:/Joe/})

模糊查詢(xún)

select * from users where name like "Joe%"

db.users.find({name:/^Joe/})

模糊查詢(xún)

select count(1) from users

Db.users.count()

獲取表記錄數(shù)

select count(1) from users where age>30

db.users.find({age: {'$gt': 30}}).count()

獲取表記錄數(shù)

select DISTINCT last_name from users

db.users.distinct('last_name')

去掉重復(fù)值

select * from users ORDER BY name

db.users.find().sort({name:-1})

排序

select * from users ORDER BY name DESC

db.users.find().sort({name:-1})

排序

EXPLAIN select * from users where z=3

db.users.find({z:3}).explain()

獲取存儲(chǔ)路徑

update users set a=1 where b='q'

db.users.update({b:'q'}, {$set:{a:1}}, false, true)

更新記錄

update users set a=a+2 where b='q'

db.users.update({b:'q'}, {$inc:{a:2}}, false, true)

更新記錄

delete from users where z="abc"

db.users.remove({z:'abc'})

刪除記錄

 

db. users.remove()

刪除所有的記錄

drop database IF EXISTS test;

use test

db.dropDatabase()

刪除數(shù)據(jù)庫(kù)

drop table IF EXISTS test;

db.mytable.drop()

刪除表/collection

 

db.addUser(‘test’, ’test’)

添加用戶(hù)

readOnly-->false

 

db.addUser(‘test’, ’test’, true)

添加用戶(hù)

readOnly-->true

 

db.addUser("test","test222")

更改密碼

 

db.system.users.remove({user:"test"})

或者db.removeUser('test')

刪除用戶(hù)

 

db.system.users.find()

查看用戶(hù)列表

 

show users

查看當(dāng)前庫(kù)所有用戶(hù)

 

db.printCollectionStats()

查看各collection的狀態(tài)

 

db.printReplicationInfo()

查看主從復(fù)制狀態(tài)

 

show profile

查看profiling

 

db.copyDatabase('mail_addr','mail_addr_tmp')

拷貝數(shù)據(jù)庫(kù)

 

db.users.dataSize()

查看collection數(shù)據(jù)的大小

 

db. users.totalIndexSize()

查詢(xún)索引的大小


名稱(chēng)欄目:MongoDb基礎(chǔ)命令
網(wǎng)站路徑:http://fisionsoft.com.cn/article/ppgcpj.html