技术文摘
MongoDB 数据库常见 28 条查询语句汇总
2024-12-29 02:35:00 小编
MongoDB 数据库常见 28 条查询语句汇总
在 MongoDB 数据库的使用中,掌握常见的查询语句对于高效地操作数据至关重要。以下为您汇总了 28 条常用的查询语句:
- 查询所有文档:
db.collection.find() - 按条件查询:
db.collection.find({field: value}) - 限制返回结果数量:
db.collection.find().limit(10) - 跳过指定数量的结果:
db.collection.find().skip(5) - 排序结果:
db.collection.find().sort({field: 1})(1 表示升序,-1 表示降序)
条件查询相关:
- 大于条件:
db.collection.find({field: {$gt: value}}) - 小于条件:
db.collection.find({field: {$lt: value}}) - 大于等于条件:
db.collection.find({field: {$gte: value}}) - 小于等于条件:
db.collection.find({field: {$lte: value}}) - 不等于条件:
db.collection.find({field: {$ne: value}})
逻辑操作符:
- 与操作:
db.collection.find({$and: [{field1: value1}, {field2: value2}]}) - 或操作:
db.collection.find({$or: [{field1: value1}, {field2: value2}]})
数组操作:
- 查询数组包含指定元素:
db.collection.find({arrayField: {$in: [value1, value2]}}) - 查询数组不包含指定元素:
db.collection.find({arrayField: {$nin: [value1, value2]}})
文本搜索:
- 全文搜索:
db.collection.find({$text: {$search: "keyword"}})
投影操作:
- 只返回指定字段:
db.collection.find({}, {field1: 1, field2: 1})
聚合操作:
- 计算平均值:
db.collection.aggregate([{$group: {_id: null, averageValue: {$avg: "field"}}}] - 计算总和:
db.collection.aggregate([{$group: {_id: null, totalValue: {$sum: "field"}}}]
更新操作:
- 更新单个文档:
db.collection.updateOne({filter}, {update}) - 更新多个文档:
db.collection.updateMany({filter}, {update})
删除操作:
- 删除单个文档:
db.collection.deleteOne({filter}) - 删除多个文档:
db.collection.deleteMany({filter})
索引相关:
- 创建索引:
db.collection.createIndex({field: 1}) - 查看索引:
db.collection.getIndexes()
子文档操作:
- 查询包含特定子文档的文档:
db.collection.find({'subDocument.field': value})
地理空间查询:
- 基于地理位置查询:
db.collection.find({location: {$near: {latitude, longitude}}})
数据分页:
- 实现分页查询:结合
skip和limit进行分页操作。
复杂查询组合:
- 根据实际需求灵活组合上述查询语句,以满足各种复杂的业务场景。
熟练掌握这些常见的查询语句,将能够更加高效地处理 MongoDB 数据库中的数据,提升开发和运维的效率。不断的实践和应用,能够让您在 MongoDB 的世界中更加游刃有余。
TAGS: 数据库操作 MongoDB 技巧 技术汇总 MongoDB 查询语句
- Rust 打造的 Helix 编辑器 强于 Vim 可取代 vscode
- Python 实现证件背景白色底更改
- Python 小知识:递归与迭代
- JavaScript switch 一文全知晓
- fd:文件查找新利器,比 Find 简单十倍
- 配置链接质量保障的方法,看这里!
- 消费者众多!RocketMQ 再度崩溃!
- C++探秘:十大使代码简洁的特性
- 美团一面:CAS 是什么?优缺点有哪些?我称知晓 AtomicInteger
- 前端中的幽灵依赖指什么
- 视觉追踪技术于 VR 安全的风险探讨
- 频繁切换 v-show 却不常用 v-if?面试时别再这样讲!
- Gopher 学习 Rust 第一课:探秘 Rust
- Figma 协同编辑的实现方式
- 尺寸单位中为何不应采用 px 及最佳实践