不同的文档包含以下结构:
1."dev": {
"urls": ["https://text.com/00a51073"]
}
2. "dev": {
"urls": ["https://text.com/410578c1","https://text.com/00a51073"]
}
如何执行通配符搜索,以便搜索“ 00a51073”应返回上述两个文档?
{
"selector": {
"$and": [
{
"$or": [
{
"dev": {
"urls": {
"$regex": ".*00a51073"
}
}
}
]
}
]
}
}
答案 0 :(得分:0)
如何使用原始的map-reduce视图代替呢?只需将每个url的最后一位用作键,即可将所有文档检索为范围查询。地图可能看起来像
function(doc) {
if (doc && doc.dev && doc.dev.urls) {
doc.dev.urls.forEach(function(url) {
var data = url.split("/");
emit(data[data.len-1], 1);
});
}
}
然后您可以查询类似
curl 'https://...cloudant.com/DB/_design/DD/_view/by_url?startkey="00a51073"&endkey="00a51073."&include_docs=true'