Mac安装Mongodb及使用

Mac安装Mongodb

brew安装Mongodb

1. install 之前,iTerm2 下用 brew 查看已安装软件、搜索 mongodb:

brew list

brew search mongodb

2. 安装 mongodb :

brew install mongodb

此处需要稍等一段时间,成功后会输出以下即说明安装成功:

在这里插入图片描述
这时 MongoDB 将被安装在 /usr/local/Cellar/mongodb/4.0.3 (我的 MongoDB 版本是 4.0.3) 。

b r e w 安 装 时 出 现 x c r u n : e r r o r : i n v a l i d a c t i v e d e v e l o p e r p a t h ( / L i b r a r y / D e v e l o p e r / C o m m a n d L i n e T o o l s ) 解 决 \color{red}{brew安装时出现xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) 解决} brewxcrun:error:invalidactivedeveloperpath(/Library/Developer/CommandLineTools)
在这里插入图片描述

原因是升级了macOS Sierra 版本之后,command line tools 工具没有用.

输入命令xcode-select --install

在这里插入图片描述
点击安装,等待软件安装完成即可。

关闭命令窗口,重新运行brew install mongdb

3. .配置 MongoDB :

安装完 MongoDB 后,需要配置一下 MongoDB ,不然是无法启动服务端的。

(1) 创建根目录下 data/db 文件夹:
mkdir -p /data/db

- p可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

如果出现 permission denied ,加上 sudo 命令:

sudo mkdir -p /data/db

(2) 给 /data/db 文件夹赋予权限:

sudo chown id -u /data/db

如果出现 “illegal user name” 的错误提示,这时我们可以查看当前的 username 并赋予权限:

$ whoami
username
$ sudo chown username /data/db

(3)添加环境变量:
打开 .zshrc 文件;

vim ~/.zshrc

添加 MongoDB 安装目录到环境变量中:

export PATH=/usr/local/Cellar/mongodb/3.4.6/bin:${PATH}

执行命令使环境变量生效:

source ~/.zshrc

(4)修改 MongoDB 配置文件, 配置文件默认在 /usr/local/etc 下的 mongod.conf: vim /usr/local/etc/mongod.conf

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /data/db
# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true


# Only accept local connections
bind_ip = 127.0.0.1
启动服务端:

此时,执行 mongod 启动 mongodb 服务:mongod

在这里插入图片描述
当出现 waiting for connections on port 27017 这些字样时,我们的服务器已经启动成功,它正在运行和侦听端口27017。

这样就可以开始与服务器进行交互了,例如只需打开一个新的终端选项卡并运行 mongo ,这将打开 mongo 的交互式控制台并连接到默认服务器(localhost:27017):

在这里插入图片描述
到现在,我们服务器已经启动成功,接下来就可以进行操作了,输入 show dbs 等命令试试~

往后要重新启动 mongodb 服务、进入 mongodb 命令行的操作:

在一个iTerm2窗口执行:mongod//MongoDB starting…waiting for connections
另一个iTerm2窗口执行:mongo//MongoDB shell

输 入 命 令 m o n g o d 报 错 48 j 解 决 方 法 \color{red}{输入命令mongod报错48j解决方法} mongod48j

终止在端口上运行的进程,这在大多数情况下都是mongodb进程。

npx kill-port 27017

Mongodb常用命令

1. 数据库

  • 查看所有数据库,可以使用命令: show dbs

     > show dbs
    admin  0.000GB
    local  0.000GB
    
  • 查看当前所连接的数据库db

  • MongoDB 创建数据库/切换 : use DATABASE_NAME

    如果数据库不存在,则创建数据库,否则切换到指定数据库。

  • 刚创建的数据库并显示在数据库的列表中, 要显示它,我们需要向刚建的数据库插入一些数据。

    
      > db.runoob.insert({"name":"菜鸟教程"})
      WriteResult({ "nInserted" : 1 })
      > show dbs
      local   0.078GB
      runoob  0.078GB
      test    0.078GB
      > 
    
  • MongoDB 删除数据库 : db.dropDatabase()

    • 首先,查看所有数据库:show dbs

       > show dbs
      	local   0.078GB
      	runoob  0.078GB
      	test    0.078GB
      
    • 接下来我们切换到你要删除数据库如: runoob:use runoob

         > use runoob
       switched to db runoob
        > 
      
    • 执行删除命令:

      > db.dropDatabase()
      { "dropped" : "runoob", "ok" : 1 }
      
    • 最后,我们再通过 show dbs命令数据库是否删除成功:

      > show dbs
      local  0.078GB
      test   0.078GB
      > 
      

2.集合

  • 查看已有集合show collections命令

  • 创建集合 : db.createCollection("CollectionName")

    • 创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

      > db.createCollection("mycol",{ capped : true, autoIndexId : true, size : 6142800, max : 10000 }       ){ "ok" : 1 }
      
    • 在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

       > db.mycol2.insert({"name" : "菜鸟教程"})
       > show collections
         mycol2
         ...
      
  • 删除集合 : db.collection.drop()

    > use runoob
    switched to db runoob
    > show tables
    site
    > db.site.drop()
    true
    > show tables
    > 
    

3. 文档

  • 插入文档

  • MongoDB 使用 insert() 或 save() 方法向集合中插入文档

db.COLLECTION_NAME.insert(document)
- 插入一条文档
javascript >db.site.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
- 插入多条文档: db.site.insert([{document1},{document2}])
javascript >db.site.insert([{ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 },{ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 }, }])

  • 查看已插入文档: : db.site.find()

  • 更新文档 : db.update.update()

  • 要修改多条相同的文档,则需要设置 multi 参数为 true。

  • 删除文档 : db.site.remove({'title':'MongoDB 教程'})

  • 查询文档 :

    • db.site.find() 查询所有数据

    • db.site.find().pretty() 以格式化方式显示数据

    • db.site.find({age:22}) 查询 age = 22 的记录

    • db.userInfo.find({age:22,name:'zhangsan'})查询 age = 22 并且name = ‘zhangsan’ 的记录

    • db.site.find({$or:[{"age":"23"},{"name":"amy"}]}).pretty(); 查询名字是amy或年龄为33的记录并以格式化形式显示

    • db.site.find({name:/mongo/}) 查询 name 中包含 mongo 的数据

    • db.site.find({},{age:1}) 只返回age字段,其他字段都不返回,_id默认返回

    • db.site.find({},{age:1,_id:0}) 只返回age字段,其他字段都不返回,_id不返回

    • db.site.find({age:{$ne:24}}) 查询年龄不是24的用户

    • db.site.find().sort({age:1}) 按照年龄升序

    • db.userInfo.find().sort({age:-1}) 按照年龄降序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值