MongoDB作为一个基于分布式文件存储的NoSQL数据库,以其高性能、可扩展性强、易于使用等特点而受到广泛欢迎。以下是MongoDB常用操作的总结:
一、数据库操作
- 查看所有数据库
- 命令:
show dbs
- 说明:列出MongoDB中所有的数据库。
- 命令:
- 切换/创建数据库
- 命令:
use DATABASE_NAME
- 说明:如果数据库不存在,则创建数据库。MongoDB在插入数据到集合(collection)时会自动创建数据库。
- 命令:
- 删除当前数据库
- 命令:
db.dropDatabase()
- 说明:删除当前选中的数据库。执行前请确保已切换到正确的数据库。
- 命令:
- 查看当前数据库
- 命令:
db
或db.getName()
- 说明:返回当前选中的数据库名称。
- 命令:
二、集合操作
- 创建集合
- 命令:
db.createCollection(name, options)
- 说明:
name
是集合名,options
是可选参数,如指定内存大小和是否固定大小等。MongoDB在插入文档时也会自动创建集合。
- 命令:
- 查看集合
- 命令:
show collections
或db.getCollectionNames()
- 说明:列出当前数据库中的所有集合。
- 命令:
- 删除集合
- 命令:
db.collectionName.drop()
- 说明:
collectionName
是要删除的集合名称。
- 命令:
三、文档操作
- 插入文档
- 单条插入:
db.collectionName.insertOne(document)
- 多条插入:
db.collectionName.insertMany([document1, document2, ...])
- 说明:
document
是要插入的文档,以BSON格式存储。
- 单条插入:
- 查询文档
- 查询所有:
db.collectionName.find()
- 查询并格式化输出:
db.collectionName.find().pretty()
- 按条件查询:
db.collectionName.find({key: value})
- 说明:
key
是字段名,value
是对应的值。
- 查询所有:
- 更新文档
- 更新一条:
db.collectionName.updateOne(query, update, options)
- 更新多条:
db.collectionName.updateMany(query, update, options)
- 说明:
query
是查询条件,update
是更新内容,options
是可选参数。
- 更新一条:
- 删除文档
- 删除一条:
db.collectionName.deleteOne(query)
- 删除多条:
db.collectionName.deleteMany(query)
- 删除所有:
db.collectionName.deleteMany({})
- 说明:
query
是删除条件。
- 删除一条:
四、高级查询
- 比较运算符
- 如:
$gt
(大于)、$lt
(小于)、$gte
(大于等于)、$lte
(小于等于)、$ne
(不等于)等。
- 如:
- 逻辑运算符
- 如:
$and
、$or
、$not
等,用于组合多个查询条件。
- 如:
- 正则表达式
- 如:
db.collectionName.find({key: /pattern/})
,用于模糊查询。
- 如:
- 聚合查询
- 使用
db.collectionName.aggregate([pipeline])
,其中pipeline
是一系列的处理步骤,如$group
、$match
、$sort
等。
- 使用
五、其他常用操作
- 查看数据库状态
- 命令:
db.stats()
- 说明:返回当前数据库的状态信息。
- 命令:
- 查看数据库版本
- 命令:
db.version()
- 说明:返回MongoDB的版本号。
- 命令:
- 索引操作
- 创建索引:
db.collectionName.createIndex(keys, options)
- 查看索引:
db.collectionName.getIndexes()
- 删除索引:
db.collectionName.dropIndex(indexName)
或db.collectionName.dropIndexes()
- 创建索引:
MongoDB的常用操作涵盖了数据库、集合、文档等层面的管理,通过熟练掌握这些操作,可以高效地管理和查询MongoDB中的数据。