您可以使用视图排序规则在地图中加入提要和数据源:
function(doc) {
if (!doc.type) return;
if (doc.type == "feed") emit(doc._id, null);
if (doc.type == "ds" && doc.feed) emit(doc.feed, null);
}
并减少以过滤那些具有链接到它们的数据源文档的提要 id。例如。使用内置 _count
和查询group_level:
http://127.0.0.1:5984/test/_design/join/_view/not_in?group_level=1
对于数据库:
{"id":"1", "type":"feed"}
{"id":"2", "type":"feed"}
{"id":"3", "type":"ds", "feed":1}
{"id":"4", "type":"ds", "feed":1}}
会给你:
{"rows":[
{"key":"1","value":3},
{"key":"2","value":1}
]}
值>1
是那些从数据源引用的提要文档。要获得没有数据源的纯提要列表,您可以value>1
在客户端或列表功能中省略记录。
编辑:具有列表功能:
function(head, req) {
var row;
while (row = getRow()) {
if (row.value == 1)
send(row.key + "\n");
}
}
和查询:
http://127.0.0.1:5984/test/_design/join/_list/not_ds/not_in?group_level=1
您将获得带有提要文档的最终结果,而无需参考数据源。它是带有 id 列表的纯文本,您也可以将其格式化为 JSON 数组。