È possibile utilizzare il view collation di unirsi feed e fonti di dati in mappa:
function(doc) {
if (!doc.type) return;
if (doc.type == "feed") emit(doc._id, null);
if (doc.type == "ds" && doc.feed) emit(doc.feed, null);
}
e ridurre al filtra gli ID feed che contengono documenti di origine dati che li collegano. Per esempio. uso del build-in_count
e query con group_level:
http://127.0.0.1:5984/test/_design/join/_view/not_in?group_level=1
per il database:
{"id":"1", "type":"feed"}
{"id":"2", "type":"feed"}
{"id":"3", "type":"ds", "feed":1}
{"id":"4", "type":"ds", "feed":1}}
vi darà:
{"rows":[
{"key":"1","value":3},
{"key":"2","value":1}
]}
valori >1
sono quei documenti per mangimi che hanno riferimento da fonti di dati . Per ottenere una lista di feed pura senza origini dati è possibile omettere record con value>1
nel client o list function.
Edit: Con la funzione elenco:
function(head, req) {
var row;
while (row = getRow()) {
if (row.value == 1)
send(row.key + "\n");
}
}
e query:
http://127.0.0.1:5984/test/_design/join/_list/not_ds/not_in?group_level=1
Si otterrà il risultato finale con i documenti di alimentazione con riferimento fuori da fonti di dati. È un testo di lamentela con un elenco di ID, puoi anche formattarlo per l'array JSON.
fonte
2013-01-19 15:36:03
significa 'ottenere tutti Feed non associati a una specifica origine dati 'o' ottieni tutti i feed non associati a ANY DataSource '? – joscas