如何使用CouchDB Mango Query筛选包含指定template_id的文档?
使用Mango查询CouchDB中包含特定template_id的文档
没问题,这事儿用Mango查询完全可以搞定,不用非得依赖视图。我给你两种实用的写法,你可以根据场景选:
写法一:用$elemMatch(扩展性更强)
如果你以后可能需要给template对象添加更多匹配条件(比如同时校验template_id和其他属性),这种写法更灵活:
{ "selector": { "templates": { "$elemMatch": { "template_id": "你要查找的目标ID" } } } }
$elemMatch的作用是告诉CouchDB:只要templates数组里至少有一个对象满足括号内的条件(这里就是template_id等于指定值),就返回该文档。
写法二:直接匹配属性路径(更简洁)
如果你的需求只是匹配特定template_id,直接用数组元素的属性路径就行,效果和上面完全一致:
{ "selector": { "templates.template_id": "你要查找的目标ID" } }
可选优化:指定返回字段
要是你不想返回文档的全部内容,还可以加上fields参数精准控制返回的字段,比如只返回文档ID、版本和templates数组:
{ "selector": { "templates.template_id": "你要查找的目标ID" }, "fields": ["_id", "_rev", "templates"] }
内容的提问来源于stack exchange,提问作者james.c.funk
相关产品推荐
相关产品推荐

