Mac安装MongoDB

1,643 阅读3分钟

下载安装

1. 官网地址:www.mongodb.com/try/downloa…

2. 点击“DOWNLOAD(tgz)”按钮,将解压后的文件改名为mongodb放入 /usr/local ,默认情况下在Finder中是看不到 /usr 这个目录的(终端用得溜的请略过),可以打开Finder后按 shift + command +G 输入 /usr/local 后回车便能看到这个隐藏的目录了。

3. 建立路径,否则mongod无法执行

  • 打开当前用户环境变量配置文件:在终端中输入
sudo vi ~/.bash_profile
  • 在文档中加入你的安装路径export PATH=$PATH:/usr/local/mongodb/bin,保存即可。
英文输入状态下
按字母i,进行编辑;
按esc后输入:wq保存离开

  • 让刚刚输入的代码生效:
source .bash_profile

注意 如果是使用item2 + oh-my-zsh的话,那么就需要将环境变量的设置(export PATH=$PATH:/usr/local/mongodb/bin)路径加再 根目录下的 ~/.zshrc文件中。步骤同上

验证是否安装成功

终端输入

mongod -version

如果出现本版好则证明已经安装成功了

  1. 最新版的Mac系统Catalina发生了令人惊讶的更改:它不允许更改根目录(这也在论坛主题中进行了讨论):
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system

不幸的是,除了在Catalina功能中简短提及之外,这在Apple的Catalina发行说明中没有明确说明:

macOS Catalina在专用的只读系统卷中运行

由于该目录/data/db被编码为MongoDB默认目录,因此一种解决方法是指定一个dbpath不在根目录上的目录。例如:

mongod --dbpath ~/data/db
//~指用户目录

这会将MongoDB的数据放在您的主目录中。只要确保该路径~/data/db确实存在。不存在就创建data>db两个目录

打开浏览器,输入localhost:27017 ,会出现这样一行文字。

It looks like you are trying to access MongoDB over HTTP on the native driver port.

重新打开另一个命令行,输入

mongo

可以对数据库进行操作,要停止MongoDB的时候一定要正确的退出,不然下次再次连接数据库会出现问题,使用下面的两行代码可以完成这一操作。

use admin;

db.shutdownServer();

5. 可视化工具

RoboMongo是一个跨平台的MongoDB GUI客户端管理工具,支持Windows、MacOS、Linux。其特点是支持到MongoDB服务器的SSL连接,还支持使用SSH隧道连接。RoboMongo的查询界面同时支持树视图、表格视图、文本视图三种,也可以保存查询结果供以后使用。 Robomongo 可以选择适合自己的版本下载。

作者:keyuan0214 链接:www.jianshu.com/p/eb4c36ff4… 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

附MongoDB数据库操作常见命令

  • show dbs 显示所有数据库
  • use dbname 使用某个数据库
  • db 查看当前数据库
  • 创建和使用数据库 use dbname
  • 删除数据库 db.dropDatabase()
  • 创建集合 db.createCollection(name,options) options {capped(固定大小):true,autoIndexId(_id 设置为默认索引):true,size(和 capped 配合使用):6142800,max(文档的最大数量):1000}
  • 删除集合 db.collectionName.drop()
  • 插入文档 db.collectionName.insert(文档)
  • 查看集合内容 db.collectionName.find()
  • 更新集合 db.collectionName.update(query 条件,更新内容,可选参数),db.coolectionName.save(文档) eg:db.users.update({a:1},{$set:{a:11}})
  • 删除文档 db.collectionName.remove(query 条件,可选参数) eg:db.users.remove({a:1},false) 删除文档中所有 a 为 1 的文档
  • 查询文档 db.collectionName.find()/db.collectionName.find().pretty()
    • db.users.find({age:{$lte:10}}) age 的值小于等于 10
    • db.users.find({age:{$ne:10}})age 的值不等于 10
    • db.users.find({$or:[{age:10},{age:20}]}) age 的值为 10 或 20
    • db.collectionName.find().limit(n) 限制显示的条数
    • db.collectionName.find().skip(n) 跳过指定数量的数据 eg: db.users.find().skip(5).limit(5)显示第 6-10 条数据
  • 排序 db.collectionName.sort({key:1}) 1 表示生序 -1 表示降序
  • 索引 db.collectionName.createIndex({key:1})