文章目录
- 一、MongoDB简介
- 二、服务启动停止备份
- 三、数据库相关
- 四、集合操作
- 五、文档操作
- 六、其他常用命令
一、MongoDB简介
MongoDB是一款流行的NoSQL数据库,以其灵活的文档模型、高可用性、易于扩展等特性而受到广泛关注。
- MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统;在高负载的情况下,添加更多的节点,可以保证服务器性能;MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案;MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成;MongoDB 文档类似于 JSON 对象。
- 特点:高性能、高可用、高扩展、丰富的查询支持、动态模式和灵活的文档模型
- 应用场景:网站实时数据处理;缓存;高伸缩性的场景
在MongoDB中基本的概念是文档、集合、数据库。
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document(集合中的数据) | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
数据库服务和对应的客户端
数据库服务 | 客户端 |
---|---|
Mysqld/Oracle | mysql/sqlplus |
mongodb | mongo |
在MongoDB中,常用命令包括数据库操作、集合操作、文档操作等几个方面。以下是MongoDB的一些常用命令及其说明
二、服务启动停止备份
#windows cmd 或 Linux 终端
mongo --version
#启动
#Windows启动与停止 命令行指令、任务管理器手动启动停止
#以管理员方式运行cmd,输入以下命令
net start mongodb
net stop mongodb #停止mongodb服务
netstat -aon | findstr 27017
#Linux启动与停止
/xxx/mongodb-server/bin/mongod -f /xxx/mongodb-server/conf/mongodb.conf #启动
ps -ef | grep mongodb-server
netstat -tunlp | grep 27017
ps -aef | grep mongodb-server | grep -v grep | awk '{print $2}' | xargs -t kill -9 #停止
#连接mongodb
mongo #无密码
mongo 10.169.215.xx:27017/admin -uroot -p1234 #有密码
mongo localhost:27017/admin -uroot -p密码
mongo admin -uroot -p密码
windows下启动、停止、查看mongodb
linux下启动、停止、查看mongodb
三、数据库相关
- 连接数据库
- 使用MongoDB Shell连接:
mongo [host]:[port]/[dbname]
,其中[host]
是数据库服务器地址,[port]
是端口号(默认为27017),[dbname]
是数据库名。如果连接本地数据库,可以简化为mongo
或mongo localhost
;有密码则需要加上对应的参数 -u、-p - 使用完整连接字符串:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
。
- 使用MongoDB Shell连接:
- 查询所有数据库
- 命令:
show dbs
- 命令:
- 创建/切换数据库
- 命令:
use database_name
。如果数据库不存在,则创建并切换到该数据库;如果数据库已存在,则直接切换到该数据库。
- 命令:
- 删除数据库
- 先切换到要删除的数据库,然后执行命令:
db.dropDatabase()
。
- 先切换到要删除的数据库,然后执行命令:
- 查看当前使用的数据库
- 命令:
db
或db.getName()
- 命令:
#mongodb命令行
show dbs #查询所有数据库
use database_name #创建/切换数据库
db.dropDatabase() #删除数据库
db 或 db.getName() #查看当前使用的数据库
四、集合操作
- 创建集合
- 命令:
db.createCollection(name, options)
。其中name
是集合名称,options
是可选参数,用于指定集合的特性,如固定集合(capped collection)的大小和最大文档数。
- 命令:
- 查看所有集合
- 命令:
show collections
- 命令:
- 删除集合
- 命令:
db.collection_name.drop()
。成功删除集合将返回true
。
- 命令:
五、文档操作
- 插入文档
- 单条插入:
db.collection_name.insert(document)
或db.collection.insertOne(document)
- 多条插入:
db.collection_name.insert([document1, document2, ...])
或db.collection.insertMany([document1, document2, ...])
- 单条插入:
- 查询文档
- 查询所有文档:
db.collection_name.find()
- 查询满足条件的文档:
db.collection_name.find(query)
,其中query
是查询条件。 - 格式化显示查询结果:
db.collection_name.find().pretty()
- 查询并返回第一个匹配的文档:
db.collection_name.findOne(query)
- 查询所有文档:
- 更新文档
- 使用
update
方法:db.collection.update(query, update, {upsert: <boolean>, multi: <boolean>})
。其中query
是查询条件,update
是更新内容,upsert
表示如果不存在满足条件的文档,是否插入新文档(默认为false
),multi
表示是否更新所有满足条件的文档(默认为false
,只更新第一个)。 - 使用
$set
操作符更新字段:db.collection.update(query, {$set: {field: value}})
- 使用
- 删除文档
- 删除满足条件的文档:
db.collection.remove(query, {justOne: <boolean>})
。其中query
是删除条件,justOne
表示是否只删除第一个匹配的文档(默认为false
,删除所有匹配的文档)。 - 使用
deleteOne
或deleteMany
方法(MongoDB 3.2+):db.collection.deleteOne(query)
或db.collection.deleteMany(query)
- 删除满足条件的文档:
六、其他常用命令
- 查看帮助:
db.help()
或db.collection.help()
- 查看集合状态:
db.collection.stats()
- 修复数据库:
db.repairDatabase()
- 复制/克隆数据库:
db.cloneDatabase("hostname")
或db.copyDatabase("fromdb", "todb", "hostname")
参考 MongoDB常用命令详细讲解(最全)