千家信息网

MongoDB日常使用的技巧与注意事项有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关MongoDB日常使用的技巧与注意事项有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、查找数组字段不为空的记录查找数据中数组字段不为空的记
千家信息网最后更新 2026年11月03日MongoDB日常使用的技巧与注意事项有哪些

这篇文章给大家分享的是有关MongoDB日常使用的技巧与注意事项有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、查找数组字段不为空的记录

查找数据中数组字段不为空的记录。

举个例子:有以下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":""}}

四、数据导出,在mongodb的bin目录执行mongoexport命令并设定相关的参数

例如:

./mongoexport -h 192.168.0.201 --port 27017 -d admin -u admin -p admin -c department -o /home/admin/department.dat
  • -h:指定要连接的数据库的ip;

  • --port:指定要连接的数据库的端口;

  • -u:指定要连接的数据库的用户名;

  • -p:指定要连接的数据库的用户密码;

  • -d:指定要连接的库名;

  • -c:指定要导出的数据集合;

  • -o:指定要导出的数据目标存放地址;

注: (1)、需要保证连接的数据库处于正常运行状态中;

(2)、我曾遇到过一中情况,数据库中加入了用户信息,启动时是没有以用户验证的方式启动,但是执行这个命令的时候,还是在我指定了用户名和密码的情况下才导出成功,如果有人遇到相似情况,不妨一试。

五、数据导入,在mongodb的bin目录执行mongoimport命令并设置相关的参数,参数解释和上边一样

例如:

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

六、非amdin数据库的用户验证问题:

我们给mongodb数据库中的库添加用户,可以在目标数据库中使用如下命令,例如在mongoTest库中添加一个拥有读写权限的用户:

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

也可以在admin数据库中添加:

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

要注意的是:这两种方式是有区别的,也正是这个区别曾坑了我一把:

使用第一种方式添加的时候,我们可以在mongodb的bin目录下直接执行如下命令进入test数据库中操作,增删改查都可以;也可以使用这个用户 名和密码在mongoVUE中连接:

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

但是如果是第二种方式创建的,那么再直接使用上边的命令,会提示验证失败,只有当先进入mongo shell连接到admin数据库,再切换到test数据库的时候才能验证通过。这算是一个小坑,不明情况的或许会非常纠结,明明用户名和密码没问题,却不知为什么就是连不上。

七、mongodb3.0默认的数据存储方式还是原来2.6一样的,我尝试过更改为新的存储方式,在启动时使用如下参数,但需要注意的是,需要在数据库中没有数据的前提下才可以,否则会报错:

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

mongodb.conf中配置了启动的其他各种参数,如dbpath、logpath等。

感谢各位的阅读!关于"MongoDB日常使用的技巧与注意事项有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 数据库 用户 命令 方式 参数 密码 情况 时候 验证 字段 方法 用户名 目录 事项 技巧 注意事项 上边 内容 数组 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 互联网科技行业发展 涨乐互联网科技 科技企业和互联网企业 青岛互联网科技公司 世界互联网领先科技成果 新浪科技互联网 互联网科技的未来发展 互联网科技博客 国外互联网科技网站 人人互联网科技是培训 昭通云南众福互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 互联网科技企业商标注意事项 美国五大互联网科技公司市值多少 亚光科技低轨卫星互联网 网互联网络科技 互联网科技企业文化 每日互联网科技新闻 武汉亿视互联网科技有限公司 云信互联网科技有限公司 深圳恒合互联网络科技有限公司 太原新华互联网科技学校怎么样 青岛中康互联网医疗科技有限公司 以后互联网后是啥科技 银川新华互联网科技职业技术培训学校图片 常德市电业局互联网科技部 互联网科技实习生岗位 互联网高科技绘画 如何强化互联网金融科技
0