浅谈几个MongoDB使用技巧是怎样的
Admin 2022-11-17 群英技术资讯 1284 次浏览
在这篇文章中我们来了解一下“浅谈几个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
注: (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使用技巧是怎样的”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
下面这篇文章主要来给大家说说看“mongodb同库联表怎么进行查询”的内容,对这方面比较感兴趣的朋友可以前来参考下,希望小编整理的内容能帮助到你。
MongoDB - 连接 在本教程我们将讨论 MongoDB 的不同连接方式。 启动 MongoDB 服务 在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。 执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。 你可以使用 MongoDB shell 来连接 Mo..
这篇文章主要介绍了MongoDB的基础知识简介,需要的朋友可以参考下
MongoDB Shell 中使用的 use admin、 show users、show collections 指令以及类似的指令不能出现在 js 文件中。因为它不是 JavaScript 语法,我们只能在 js 文件调用对应的方法。
mongodb中插入图片的方法:使用GridFS类即可插入图片,先使用new GridFS(db)方法获取gridFS对象,然后使用gridFS.createFile()方法写入图片。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008