真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MongoDB日常使用的技巧與注意事項有哪些

這篇文章給大家分享的是有關(guān)MongoDB日常使用的技巧與注意事項有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了左權(quán)免費建站歡迎大家使用!

一、查找數(shù)組字段不為空的記錄

查找數(shù)據(jù)中數(shù)組字段不為空的記錄。

舉個例子:有以下Mongo文檔,

{
 "id" : "581c060f2b436c05aafb1632",
 "commit_history" : [ 
 "581c20d52b436c05aafb1633", 
 "581c21c12b436c05aafb1634"
 ]
},
{
 "id" : "581c060f2b436c05aafb1633",
 "commit_history" : []
}

想要查找commit_history不為空的記錄,有以下方法:

      方法一: db.collection.find({commit_history: {$not: {$size: 0}}})

      方法二: db.collection.find({'commit_history.0': {$exists: 1}})

二、MongoDB添加用戶

在MongoDB中為一個Collection添加用戶,可以如下操作:

use collection_name 切換到某個庫

db.createUser(
 {
 user: "collection_name",
 pwd: "password",
 roles: [ "readWrite", "dbAdmin" ]
 }
)

三、有的時候需要刪除指定字段那一列,使用update操作。

例如要刪除name這一列:

query  json:

{"name":{$exists:true}}

update json:

{$unset:{"name":""}}

四、數(shù)據(jù)導(dǎo)出,在mongodb的bin目錄執(zhí)行mongoexport命令并設(shè)定相關(guān)的參數(shù)

例如:

./mongoexport -h 192.168.0.201 --port 27017 –d admin –u admin –p admin -c department -o /home/admin/department.dat
  • -h:指定要連接的數(shù)據(jù)庫的ip;

  • --port:指定要連接的數(shù)據(jù)庫的端口;

  • -u:指定要連接的數(shù)據(jù)庫的用戶名;

  • -p:指定要連接的數(shù)據(jù)庫的用戶密碼;

  • -d:指定要連接的庫名;

  • -c:指定要導(dǎo)出的數(shù)據(jù)集合;

  • -o:指定要導(dǎo)出的數(shù)據(jù)目標(biāo)存放地址;

注:(1)、需要保證連接的數(shù)據(jù)庫處于正常運行狀態(tài)中;

           (2)、我曾遇到過一中情況,數(shù)據(jù)庫中加入了用戶信息,啟動時是沒有以用戶驗證的方式啟動,但是執(zhí)行這個命令的時候,還是在我指定了用戶名和密碼的情況下才導(dǎo)出成功,如果有人遇到相似情況,不妨一試。

五、數(shù)據(jù)導(dǎo)入,在mongodb的bin目錄執(zhí)行mongoimport命令并設(shè)置相關(guān)的參數(shù),參數(shù)解釋和上邊一樣

例如:

./mongoimport --port 27017 -d admin -u admin –p admin –c department /home/common/mongodb305/bin/department.dat

六、非amdin數(shù)據(jù)庫的用戶驗證問題:

我們給mongodb數(shù)據(jù)庫中的庫添加用戶,可以在目標(biāo)數(shù)據(jù)庫中使用如下命令,例如在mongoTest庫中添加一個擁有讀寫權(quán)限的用戶: 

db.createUser({"user":"test","pwd":"123456","roles":["readWrite"]})

也可以在admin數(shù)據(jù)庫中添加: 

db.createUser({"user":"test","pwd":"123456","roles":[{"role":"readWrite","db":"test"},"readWrite"]})

要注意的是:這兩種方式是有區(qū)別的,也正是這個區(qū)別曾坑了我一把:

使用第一種方式添加的時候,我們可以在mongodb的bin目錄下直接執(zhí)行如下命令進入test數(shù)據(jù)庫中操作,增刪改查都可以;也可以使用這個用戶  名和密碼在mongoVUE中連接:

./mongo -h 192.168.0.201 --port 27017 -u test -p 123456 -d test

但是如果是第二種方式創(chuàng)建的,那么再直接使用上邊的命令,會提示驗證失敗,只有當(dāng)先進入mongo shell連接到admin數(shù)據(jù)庫,再切換到test數(shù)據(jù)庫的時候才能驗證通過。這算是一個小坑,不明情況的或許會非常糾結(jié),明明用戶名和密碼沒問題,卻不知為什么就是連不上。

七、mongodb3.0默認(rèn)的數(shù)據(jù)存儲方式還是原來2.6一樣的,我嘗試過更改為新的存儲方式,在啟動時使用如下參數(shù),但需要注意的是,需要在數(shù)據(jù)庫中沒有數(shù)據(jù)的前提下才可以,否則會報錯:

./mongod -f /mongodb304/conf/mongodb.conf --storageEngine wiredTiger

mongodb.conf中配置了啟動的其他各種參數(shù),如dbpath、logpath等。

感謝各位的閱讀!關(guān)于“MongoDB日常使用的技巧與注意事項有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


新聞標(biāo)題:MongoDB日常使用的技巧與注意事項有哪些
當(dāng)前地址:http://weahome.cn/article/ipcgep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部