两个重要的概念
- 集合:类似于关系型数据库中的表
- 文档:类似关系型数据库中的每一行数据
开启数据库服务+运行mongo shell
- sudo systemctl start mongo -- 开启mongodb服务
- sudo systemctl status mongo -- 查看mongodb运行状态
- mongo -- 进入 mongo shell 交互式的命令行,可以使用相关命令执行数据操作
- mongo "mongodb://mongodb0.example.com:28015" -- 连接远程数据库
- mongo --username <user> --password --host <host> --port 28015 -- 使用用户名密码登录mongo数据库
基本的操作
一些基本的命令:
show dbs -- 查看数据库列表
db -- 查看当前数据库名称
use [dbName] -- 使用指定的数据库
show collections -- 查看当前数据库中的集合列表
增删改查操作
- 增加,即插入数据
db.[collectionName].insertOne({prop: value, prop: value}) -- 往集合中插入一条数据
返回成功结果:
{
"acknowledged" : true,
"insertedId" : ObjectId("5fbe6b1666ec27aa4aedf08a")
}
db.[collectionName].insertMany([{prop: value, prop: value}, {}]) -- 往集合中插入多条数据
返回成功结果:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5fbe6bb866ec27aa4aedf08d"),
ObjectId("5fbe6bb866ec27aa4aedf08e")
]
}
db.[collectionName].insert() -- 既可以插入一条文档,也可以插入文档集合
返回成功结果:
// 插入单条数据
WriteResult({ "nInserted" : 1 })
// 插入一组数据
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
- 查询
db.[collectionName].findOne({}) -- 查询一条数据,方法第一个参数接一个对象过滤条件,第二个参数设置一些返回数据的规则,比如一般不需要返回 _id,只需要设置第二个对象参数为{_id: 0}
0 表示 exclude
1 表示 include
db.[collcetionName].find() -- 返回符合条件的所有数据
db.[collcetionName].find().pretty() -- 美化符合条件的所有数据
快捷键
- ↑ ↓ 可以查看使用过的命令
- tap 可以自动查询闭合相关命令,相当于关键词联想
db.<collectionName>.find + tap
db.users.find( db.users.findOne( db.users.findOneAndReplace(
db.users.findAndModify( db.users.findOneAndDelete( db.users.findOneAndUpdate(
- Home/End -- 回到当前行首/末
- Ctrl-left-arrow / Ctrl-right-arrow -- 回到当前单词的词首/词末
- Ctrl-A / Ctrl-E -- 回到当前行首/末
- Ctrl-B / Ctrl-F -- 后退/前进一个字符
一些名词翻译
- host your data:托管你的数据
- codepoints 代码点
- built-in:内置
- truncate :截断
- Alternatively:或者
- explicitly specify:明确指定
- parenthesis:括号
- brace:大括号
- open bracket:括弧
- shortcuts: 快捷键