Есть ли способ объединить более 2 документов в функцию карты? - PullRequest
0 голосов
/ 05 мая 2019

Я понимаю, что CouchDB не предназначен для использования реляционной базы данных, но, пожалуйста, скажите, есть ли решение для случая использования более чем двухуровневой иерархии в вашей модели данных?

Я просмотрел следующие два поста, и ответы не отвечают на мой вопрос: Функция многоуровневого просмотра карты CouchDB? Couchdb объединяет два документа, используя ключ

У меня есть документ A, который содержит список документов B, который содержит список документов C, который содержит список документов D. Каждый список представляет собой массив _ids.

Я пытался использовать forEach list и for loop, но понимаю, что если я работаю с doc A в качестве корневого, я могу получить доступ только к d B, но не дальше B.

Функция многоуровневого представления карты CouchDB? Couchdb объединяет два документа, используя клавишу

и список функций

function(doc) {
    if (doc.type == "wcgop-trip") {
        emit([doc._id, 0], null);
        if (doc.operationIDs) {
            for (var i in doc.operationIDs) {

                if (doc.operationIDs[i].catches) {
                    for (var j in doc.operationIDs[i].catches) {

                        if (doc.operationIDs[i].catches[j].species) {
                            for (var k in doc.operationIDs[i].catches[j].species) {
                                emit([doc._id, Number(i)+1], {_id: doc.operationIDs[i]}, {_id: doc.operationIDs.catches[j]}, {_id: doc.operationIDs.catches[j].species[k]});
                            }
                        }


                    }
                }
            }

        }
    }
}

Я ожидал сплющенного вида.

...