MongoDB常用查询语句
内容提要
本文介绍了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操作向数组中插入值或对象。