MongoDB数据库 MQL (MongoDB Query Language)语句大全

基本命令

连接到 MongoDB
复制代码
mongo

显示所有数据库

复制代码
show dbs

选择(或创建)数据库

复制代码
db

集合操作

显示当前数据库中的所有集合
复制代码
show collections

创建集合

复制代码
db.createCollection("myCollection")

删除集合

复制代码
db.myCollection.drop()

文档操作

插入文档

插入单个文档:

复制代码
db.myCollection.insertOne({name: "Alice", age: 25})

插入多个文档:

javascript 复制代码
db.myCollection.insertMany([{name: "Bob", age: 30}, {name: "Charlie", age: 35}])
查询文档

查询所有文档:

bash 复制代码
db.myCollection.find()

带条件查询:

bash 复制代码
db.myCollection.find({age: {$gt: 30}})

查询特定字段:

bash 复制代码
db.myCollection.find({}, {name: 1, age: 1, _id: 0})
更新文档

更新单个文档:

bash 复制代码
db.myCollection.updateOne({name: "Alice"}, {$set: {age: 26}})

更新多个文档:

bash 复制代码
db.myCollection.updateMany({age: {$gt: 30}}, {$set: {status: "Senior"}})

替换文档:

bash 复制代码
db.myCollection.replaceOne({name: "Alice"}, {name: "Alice", age: 27, city: "New York"})
删除文档

删除单个文档:

bash 复制代码
db.myCollection.deleteOne({name: "Alice"})

删除多个文档:

bash 复制代码
db.myCollection.deleteMany({age: {$lt: 30}})

索引操作

创建索引
bash 复制代码
db.myCollection.createIndex({name: 1})

显示索引

bash 复制代码
db.myCollection.getIndexes()

删除索引

bash 复制代码
db.myCollection.dropIndex("name_1")

聚合操作

聚合查询
bash 复制代码
db.myCollection.aggregate([
    {$match: {status: "Senior"}},
    {$group: {_id: "$status", total: {$sum: 1}}}
])

数据库管理

删除数据库
bash 复制代码
db.dropDatabase()

用户和权限

创建用户
bash 复制代码
db.createUser({
    user: "myUser",
    pwd: "myPassword",
    roles: [{role: "readWrite", db: "myDatabase"}]
})

删除用户

bash 复制代码
db.dropUser("myUser")

备份和恢复

数据库备份
bash 复制代码
mongodump --db myDatabase --out /path/to/backup

数据库恢复

bash 复制代码
mongorestore /path/to/backup/myDatabase

性能调优

查看性能状态
bash 复制代码
db.serverStatus()

查看当前操作

bash 复制代码
db.currentOp()

杀死长时间运行的操作

bash 复制代码
db.killOp(opid)

常用查询操作

查询条件和投影
bash 复制代码
db.myCollection.find({age: {$gte: 25}}, {name: 1, age: 1, _id: 0})

排序

bash 复制代码
db.myCollection.find().sort({age: -1})

分页

bash 复制代码
db.myCollection.find().skip(10).limit(10)
相关推荐
川石课堂软件测试13 分钟前
Mysql中触发器使用详详详详详解~
数据库·redis·功能测试·mysql·oracle·单元测试·自动化
鹏说大数据21 分钟前
数据治理项目实战系列6-数据治理架构设计实战,流程 + 工具双架构拆解
大数据·数据库·架构
唯余旧忆34 分钟前
【数据写入】达梦数据库(dm8)merge into写入时序数据速度慢的问题处理
数据库
小二·1 小时前
MyBatis基础入门《十四》多租户架构实战:基于 MyBatis 实现 SaaS 系统的动态数据隔离
数据库·架构·mybatis
白衣衬衫 两袖清风1 小时前
SQL联查案例
数据库·sql
ShirleyWang0121 小时前
VMware如何导入vmdk文件
linux·数据库
gugugu.2 小时前
Redis Set类型完全指南:无序集合的原理与应用
数据库·windows·redis
wang6021252182 小时前
为什么不采用级联删除而选择软删除
数据库·oracle
变形侠医3 小时前
比 Kettle 快2倍的 Java ETL 开源库:Etl-engine
数据库
soft20015253 小时前
从一次增删改操作开始:彻底理解 MySQL Buffer Pool 的地位与作用
数据库·mysql