mongoDB 是什么
MongoDB 是一种数据库。数据库是一个存储数据并提供增删改查 API 的东西。
macOS 上安装和启动 mongoDB
安装
brew tap mongodb/brew
brew install mongodb-community
启动
通过 homebrew 设置开机自启
brew services start mongodb-community@4.2
或者每次需要使用时手动开启
mongod --config /usr/local/etc/mongod.conf --fork
如果因升级了 Catalina 之后导致启动失败,可尝试删除 /usr/local/var/mongodb 目录下所有东西之后重新开启。
基本概念
Document
Document 是 MongoDB 的最小操作单元,所有的记录都是以 Document 的形式存储。Document 由一系列有序的 field-value pairs 组成。field name 必须唯一、大小写敏感、不能以 $ 开头、不能包含空白字符;value 可以为任意合法的 BSON type。默认地,每个 Document 在被插入时会生成一个排在第一位的特殊 field:_id,为按照特定规则生成的保证其唯一性的长度为 12 bytes 的 ObjectId,可以转换成一个包含 24 个十六进制数的字符串。
Collection
Collection 是 Document 的集合。
Database
Database 是 Collection 的集合。
概括起来,field-value pair(s) -> Document(s) -> Collection(s) -> Database(s),「->」 表示「组成」的意思。
Mongo shell
Mongo shell 是访问 MongoDB 的接口(同时也可以执行 JavaScript 的代码),所以,通过 Mongo shell 便可以进行增删改查操作。MongoDB 服务开启后,在 shell 里输入 mongo 即可连接 MongoDB 进而进入 Mongo shell。
增删 Database
增
use dbName
db.collection.insert({})
以上代码执行完后就会新建一个名为 dbName 的 db,同时这个包含一个名为 collection 的 collection,collection 里包含一个 document,document 里只有一个 _id。
删
use dbName
db.dropDatabase()
增删 Collection
删
use dbName
db.collection.drop()
增删改查 Document
增
db.collection.insert(document)
db.collection.insertOne(document)
db.collection.insertMany(documents)
删
db.collection.deleteOne(filter)
db.collection.deleteMany(filter)
改
db.collection.updateOne(filter, update)
db.collection.updateMany(filter, update)
db.collection.update(filter, update)
db.collection.replace(filter, update)
查
db.collection.find(query, projection)
db.collection.findOne(query, projection)