这篇文章给大家分享的是有关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-h192.168.0.201--port27017–dadmin–uadmin–padmin-cdepartment-o/home/admin/department.dat

-h:指定要连接的数据库的ip;

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

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

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

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

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

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

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

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

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

例如:

./mongoimport--port27017-dadmin-uadmin–padmin–cdepartment/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-h192.168.0.201--port27017-utest-p123456-dtest

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

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

./mongod-f/mongodb304/conf/mongodb.conf--storageEnginewiredTiger

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

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