如何在CouchDB中使用Mango查询is_deleted等于1的文档?
使用Mango查询获取is_deleted字段值为1的文档集
嘿,这事儿不难,我给你一步步说明怎么实现:
首先,Mango查询的核心是通过selector定义筛选规则,你要找的是所有is_deleted等于1的文档,那些自动生成的唯一键(比如文档的_id)完全不影响这个筛选逻辑——除非你还要额外过滤这些ID,但你没提这个需求,所以咱们直接聚焦在is_deleted字段上就行。
基础查询语句
直接用下面的JSON作为查询体就能拿到你要的结果:
{ "selector": { "is_deleted": 1 }, "fields": ["_id", "_rev", "is_deleted"], // 可选参数:指定要返回的字段,不写的话会返回整个文档 "limit": 100 // 可选参数:限制单次返回的结果数量,根据你的数据量调整 }
优化查询性能(可选但推荐)
如果你的数据库里文档数量很多,全表扫描会很慢,建议给is_deleted字段创建一个持久化索引:
{ "index": { "fields": ["is_deleted"] }, "name": "idx_is_deleted", "type": "json" }
创建好这个索引后,Mango查询会自动使用它来加速筛选,效率会高很多。
怎么执行这个查询?
- 如果你用API调用:发送POST请求到你的CouchDB数据库地址(比如
http://your-couchdb-host:5984/your_database/_find),把上面的查询JSON作为请求体发送就行。 - 如果你用Fauxton界面(CouchDB的可视化管理工具):进入"Query"页面,选择"Create Query",然后把
selector部分的内容填进去,就能直接看到结果了。
内容的提问来源于stack exchange,提问作者Lokesh Jain
相关产品推荐
相关产品推荐

