Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mongodb基础应用

mongodb基础应用

原创
作者头像
shirley
修改于 2019-05-04 06:54:50
修改于 2019-05-04 06:54:50
7920
举报
文章被收录于专栏:进击的全栈进击的全栈
  • Mac OSX 平台安装 MongoDB
  • MongoDB权限验证
  • MongoDB常用操作指令
一、Mac OSX 平台安装 MongoDB
(一)安装MongoDB

使用 OSX 的 brew 来安装 mongodb:

代码语言:txt
AI代码解释
复制
brew install mongodb
(二)运行 MongoDB

1、首先我们创建一个数据库存储目录 /data/db:

代码语言:txt
AI代码解释
复制
sudo mkdir -p /data/db

2、启动 mongodb,默认数据库目录即为 /data/db:

代码语言:txt
AI代码解释
复制
sudo mongod

3、再打开一个终端进入执行以下命令:

代码语言:txt
AI代码解释
复制
// 这个路径可以通过安装时候的信息找到
cd /usr/local/Cellar/mongodb/4.0.3_1/bin
./mongo
二、MongoDB权限验证

为了保证mongodb数据库的安全性,需要给数据库设置权限验证。

启用 MongoDB 用户认证的步骤:
  • 如果 admin 中没有用户,则必须在 admin中添加用户
  • 在要启用认证的数据库中创建对应的用户
  • 以认证方式,即 –auth 参数的方式启动 MongoDB 数据库
  • 用数据库对应的用户登录数据库,比如:mongo 127.0.0.1/test -utest_user -ppasword
设置用户并验证
代码语言:txt
AI代码解释
复制
# 1.进入mongo环境
> ./mongo

# 2.切换到 'admin' 数据库
> use admin

# 3.给admin设置用户
# user: 用户名 
# pwd: 用户密码
# roles: 用来设置用户的权限,比如读,读写,写等等
> db.createUser({user: 'root', pwd: '123456', roles: ['root']})

# 4.验证该用户 'db.auth(用户名,用户密码)'
> db.auth('root', '123456')
# 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败

# 5.自定义数据库,并添加用户
# a.创建 'example' 数据库
> use example

# b.创建用户
> db.createUser({user: 'james', pwd: '123456', roles: [{role: 'readWrite'}]})

# c.验证该用户
> db.auth('james', '123456')
# 如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败
role里的角色可以选
代码语言:txt
AI代码解释
复制
Built-In Roles(内置角色):
    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root  
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 内部角色:__system
具体角色
代码语言:txt
AI代码解释
复制
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
查看所有帐号
代码语言:txt
AI代码解释
复制
db.system.users.find().pretty()

如果修改了用户权限,则需要在用户所在的数据库再次认证才能生效。

三、MongoDB常用操作指令
(一)操作数据库
1. 使用db查看当前操作的数据库
代码语言:txt
AI代码解释
复制
> db
2. 创建数据库

MongoDB 用 use + 数据库名称(use DATABASE_NAME) 的方式来创建数据库。use 会创建一个新的数据库,如果该数据库存在,则返回这个数据库。例如:创建一个名为“test”的数据库:

代码语言:txt
AI代码解释
复制
> use test
3. 检查数据库列表
代码语言:txt
AI代码解释
复制
show dbs

至少插入一个文档才会显示新添加的数据库。

注:在 MongoDB 中,默认的数据库是 test,如果你没有创建任何数据库,那么集合就会保存在 test 数据库中。

4. 删除数据库
代码语言:txt
AI代码解释
复制
# 首先使用show dbs看一下数据库列表:
> show dbs
# 删除数据库test:
> use test
> db.dropDatabase()
# 再看一下数据库列表:
> show dbs
(二)集合操作
1. 创建集合

除了以下方式,在插入文档的时候,也会自动创建集合

代码语言:txt
AI代码解释
复制
# name 是集合名称,是一个字符串;options 是可选项,是一个文档,指定内存大小和索引等选项
> db.createCollection(name, options)

注:undefined1.如果 collection 达到最大存储限制(size)之前达到最大文档数量(max)会删除旧文档。

2.MongoDB 会先检查size值,然后再检查max值

2. 显示当前操作数据库内的所有集合
代码语言:txt
AI代码解释
复制
> show collections
3. 删除集合
代码语言:txt
AI代码解释
复制
> db.COLLECTION_NAME.drop()
(三)文档操作
1. 文档操作
代码语言:txt
AI代码解释
复制
# document是一个对象
> db.collection_name.insert(document)
2. 更新文档

MongoDB 用 update() 或者 save() 更新集合中的文档

2.1、update()

update() 更新已经存在文档的值

代码语言:txt
AI代码解释
复制
> db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)

上面范例只会更新第一条发现的文档,若想更新全部发现的文档,则需要用 multi:true ,具体写法如下

代码语言:txt
AI代码解释
复制
> db.user.update({'name':'user1'},{$set:{'name':'user2'}},{multi:true})

2.2、save()

save() 方法通过传入的文档来替换已有文档

代码语言:txt
AI代码解释
复制
> db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
3. 删除文档
代码语言:txt
AI代码解释
复制
> db.COLLECTION_NAME.remove(DELLETION_CRITTERIA,justOne)

justOne 如果设为 true 或 1,则只删除一个文档。 如果想删除所有记录,可以这样写:

代码语言:txt
AI代码解释
复制
> db.user.remove({})
(四)文档查询

可以用 find() 方法查询全部文档,可以用 findOne() 查询第一个文档,还可以根据 条件操作符 和 $type操作符 查询满足条件的文档。

代码语言:txt
AI代码解释
复制
> db.user.find()
# 如果想要格式化显示查询结果,需要用 pretty() 方法
> db.COLLECTION_NAME.find().pretty()
条件操作符

操作

格式

范例

等于

{<key>:<value>}

db.user.find({"name":"liruihuan"}).pretty()

小于

{<key>:{$lt:<value>}}

db.user.find({"age":{$lt:18}}).pretty()

小于或等于

{<key>:{$lte:<value>}}

db.user.find({"age":{$lte:18}}).pretty()

大于

{<key>:{$gt:<value>}}

db.user.find({"age":{$gt:18}}).pretty()

大于或等于

{<key>:{$gte:<value>}}

db.user.find({"age":{$gte:18}}).pretty()

不等于

{<key>:{$ne:<value>}}

db.user.find({"age":{$ne:18}}).pretty()

MongoDB 中的 and 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,MongoDB 会把这些键作为 and 条件,及常规 SQL 的 AND 条件。

代码语言:txt
AI代码解释
复制
> db.collection.find({key1:value1, key2:value2}).pretty()
MongoDB 中的 or 条件

MongoDB 中 or 条件用 $or关键字

代码语言:txt
AI代码解释
复制
> db.collection.find({$or: [{key1:value1},{key2:value2}]}).pretty()

本文参考了网上多篇文章,侵删。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MongoDB 常用
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4O4
2022/04/25
3110
MongoDB数据库的基本使用总结
江湖有缘
2023/09/14
1.8K0
MongoDB数据库的基本使用总结
三、MongoDB高级操作
测试:age添加索引情况 语法:db.c1.createIndex({age: 1}) 继续:db.c1.find({age:18}).explain(‘executionStats’)
Dreamy.TZK
2020/07/09
1.7K0
三、MongoDB高级操作
MongoDB,入门看这一篇足矣!
在介绍 MongoDB 之前,我先介绍一下业务开发的时候遇到的痛点,以便大家对它有一个更加清晰的认识!
Java极客技术
2022/12/04
1.7K0
MongoDB,入门看这一篇足矣!
Linux下mongodb用户管理和设置远程登陆
前提:已经在linux上安装好了mongodb。安装方法这里不说了,网上各种有。 本地用到的工具(windows):mongoChef(一个可视化操作工具,可以用于3.xx版本,romongo不行)
ACK
2020/01/14
3.6K0
Linux下mongodb用户管理和设置远程登陆
Linux 安装 MongoDB
一、下载 Linux:CentOS 7.3 64位 MongoDB:3.6.4 安装目录:/usr/local cd /usr/local wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz 回到顶部 二、解压缩     解压缩安装包并重命名(方便管理) tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz mv mongodb-linux-x86_64-rhel62
JMCui
2018/06/14
2.2K0
零基础学习MongoDB (三)—— 管理用户
在b站上听了几个老师的课,有涉及到mongodb的一些历史,比如删库勒索,因此开放的数据库是很危险的,所以我们需要给它们添加管理用户,这样为我们的数据安全加一道墙
小丞同学
2021/08/16
2910
实战 | MongoDB的安装配置
通过上面的安装MongoDB目前还处于裸奔状态,我们必须给其配置上用户密码认证登录。首先我们给MongoDB配置一个超级管理员,操作步骤如下:
JAVA日知录
2021/04/07
6110
实战 | MongoDB的安装配置
MongoDB学习笔记-3、MongoDB权限介绍
MongoDB数据库其安全性并不高,为了防止被一些好心人进行攻击,有效的方法是启用身份验证、不允许远程访问或者添加IP访问限制。
pbinlog
2022/03/13
6340
MongoDB学习笔记-3、MongoDB权限介绍
MongoDB 使用系列(一)-- 安装
环境 系统:Ubuntu 16.04 MongoDB 版本:3.6 安装 添加软件源 1.添加 MongoDB 签名到 APT $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 2.创建/etc/apt/sources.list.d/mongodb-org-3.6.list文件并写入命令 Ubuntu 14.04 $ echo "deb [ arch=amd64 ] https://repo.m
木制robot
2018/04/13
1.3K0
mongodb用户管理
mongodb安装好后第一次进入是不需要密码的,也没有任何用户。 在安装MongoDB之后,先关闭auth认证,启动服务端:
切图仔
2022/09/14
8720
mongodb用户管理
MongoDB从入门到实战之Docker快速安装MongoDB
      在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoDB的可视化工具用的是Navicate。废话不多说,我们先花了几分钟开始的把MongoDB环境搭建起来。
追逐时光者
2023/05/26
8880
MongoDB从入门到实战之Docker快速安装MongoDB
CentOS 6 上mongodb安装与使用
版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://blog.csdn.net/wh211212/article/details/79797705
shaonbean
2019/05/26
9600
MongoDB认证和授权
MongodDB存储所有的用户信息在admin数据库的集合system.users中,保存数据库、密码和数据库信息。MongoDB默认不启用权限认证,只要能连接到服务器,就可连接到mongod。 若要启用安全认证,需要更改配置文件Authorization,也可简写为 auth。或者在命令行启动MongoDB时加上 -auth参数启动,这样当MongoDB启动后就需要用户和密码进行认证了。
拓荒者
2019/09/17
5.8K0
MongoDB安装与应用 原
epel自带2.6版本的MongoDB,在此安装MongoDB v3.4,方法如下: 官方安装文档: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
阿dai学长
2019/04/03
6310
MongoDB运维与开发(三)
今天来看MongoDB的用户相关的内容,用户、权限,这块儿的内容还是比较多的。慢慢来看
AsiaYe
2020/11/03
1.9K0
超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》
目前我们常用的MS SQL数据库、ACCESS数据库、MongoDB、My SQL数据库等等。 之前我讲过My SQL数据库,有兴趣的朋友可以去看看。今天我们主要讲讲MongoDB。
苏州程序大白
2021/08/13
8690
超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》
MongoDB基础
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。在nosql数据库里,大部分的查询都是键值对(key、value)的方式。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的。其特征NoSQL、文档存储、Json数据模型、支持事务。
KaliArch
2018/05/30
1.7K2
MongoDB基础
初识 MongoDB 服务
一、了解 MongoDB 之前认识了两种相同类型的缓存技术(关系型数据库)memcached 和 Redis, MongoDB是与之前两款完全不同的一个类型的缓存技术!称之为:文档型数据库! 提到文档,一个新概念JSON,MongoDB的文档类似于JSON对象! JSON:JavaScript 对象表示法(JavaScript Object Notation)。 JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。 来看一下JSON文档: { "employee
老七Linux
2018/05/31
7500
mongodb设置密码 原
rote:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
拓荒者
2019/03/11
2.4K0
相关推荐
MongoDB 常用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档