Mac安装Mongodb

brew安装Mongodb

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

brew list

brew search mongodb

2. 安装 mongodb :

brew install mongodb

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

Mac安装Mongodb及使用
这时 MongoDB 将被安装在 /usr/local/Cellar/mongodb/4.0.3 (我的 MongoDB 版本是 4.0.3) 。

brewxcrun:error:invalidactivedeveloperpath(/Library/Developer/CommandLineTools)\color{red}{brew安装时出现xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) 解决}
Mac安装Mongodb及使用

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

输入命令xcode-select --install

Mac安装Mongodb及使用
点击安装,等待软件安装完成即可。

关闭命令窗口,重新运行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

Mac安装Mongodb及使用
当出现 waiting for connections on port 27017 这些字样时,我们的服务器已经启动成功,它正在运行和侦听端口27017。

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

Mac安装Mongodb及使用
到现在,我们服务器已经启动成功,接下来就可以进行操作了,输入 show dbs 等命令试试~

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

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

mongod48j\color{red}{输入命令mongod报错48j解决方法}

终止在端口上运行的进程,这在大多数情况下都是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)
    • 插入一条文档
      >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}])
      	 >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()
  • 删除文档 : 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({name:/mongo/}) 查询 name 中包含 mongo 的数据

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

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

相关文章: