MongoDB常用查询语句

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

本文介绍了MongoDB的基本操作,包括单条件查询、文档删除、数据去重、属性更新、数组操作及数据导入导出等,提供了具体示例以展示如何使用查询、聚合和更新命令管理数据库数据。

🔎

延伸解读

嵌套字段查询与复合条件

MongoDB 支持使用点号访问嵌套文档中的字段,如 'city.value'。对于多条件查询,可以使用 $and 操作符组合多个条件,确保同时满足。这比多次调用 find 更高效,也便于构建复杂查询。

聚合管道实现分组与去重

聚合管道通过 $match、$group 等阶段处理数据。$group 可按指定字段分组并统计数量,结合 $match 可实现类似 SQL 的 Having 过滤。去重时,利用 $addToSet 收集重复文档的 _id,再删除除第一条外的记录。

数据导入导出与常见问题

mongodump 和 mongorestore 用于备份和恢复数据,需指定主机、认证、数据库和集合。导出时若遇到 'snapshot' 字段错误,可添加 --forceTableScan 参数解决。导入时直接指定 .bson 文件路径即可。

数组查询与树形结构处理

对于字符串数组,使用 $all 匹配包含所有指定元素的文档;对于对象数组,使用 $elemMatch 匹配至少一个满足所有条件的元素。树形结构可通过 $graphLookup 实现递归查询,连接 parent_id 和 classify_id 字段。

❓

Q&A

如何在MongoDB中进行单条件查询?

可以使用db.xxx.find({'city.value':'深圳市'})进行单条件查询。

MongoDB中如何删除文档?

使用db.xxx.remove({'city.value':'伊犁哈萨克自治州'})可以删除指定文档。

如何在MongoDB中更新文档的属性?

可以使用db.xxx.update({}, {$set:{'status':'finished'}},{multi: true})来更新文档属性。

MongoDB如何进行数据导出?

可以使用mongodump命令进行数据导出,例如:mongodump -h 192.168.xx.xxx:xxxxx -u xxxx -p xxx -d xxxxx -c xxx -o W:\xxxxx\dump\someDirectory。

如何在MongoDB中使用聚合操作?

可以使用db.xxx.aggregate()进行聚合操作,例如分组和条件筛选。

MongoDB中如何处理数组数据?

可以使用db.xxx.update()结合$push操作向数组中插入值或对象。

🏷️

标签

➡️

继续阅读