Couchdb соединить два документа, используя ключ

У меня есть два документа, один с древовидной структурой, а другой - с первым документом. Я пытаюсь присоединиться к этим двум документам по ФК и ПК. Я не мог получить фактические результаты, и он отображает все нулевые значения.

Первый документ

{
   "name": "one",
   "root": {
            "level1" : {
                       "level2" : {
                                 "level3" : {
                                           "itemone": "Randomkey1",
                                           "itemtwo": "Randomkey2
                                          }
                                }
                     }
         },
   "type": "firstdoc"
}

Второй документ

{
    "name"  : "two",
    "mapBy" : "Randomkey1",
    "type"  : "senconddoc
}

Я написал функцию карты, в которой перечисляются все клавиши уровня 1, 2 или 3. Теперь я хочу присоединиться к этому первому и второму документам, используя ключ. Я пробовал два способа (первый: я получаю все (Root, Randomkey), (docName, Randomkey1), но это не делает никакого объединения. Я ищу результат как (Root, docName)

Может ли кто-нибудь помочь исправить это

карта

function(doc) {
   if (doc.type === 'firstdoc' || doc.type === 'seconddoc' ) {
      var rootObj = doc.Root;
      for (var level1 in rootObj) {

         var level2Obj = doc.Root[level1];

         for (var level2 in level2Obj) {

           var keys = new Array();
            var level3Obj = level2Obj[level2];

            for (var i in level3Obj) {

                var itemObj = level3Obj[i];

                for (var i in itemObj) {
                    keys.push(itemObj[i]);

                    emit(doc.name, [itemObj[i], 0]);

                     var firstDocName = doc.name;

                    //This is gives null values
                    if (doc.Type === 'senconddoc' && doc.mapBy === itemObj[i]) {

                         emit(firstDocName , doc);
                    }
                }
            }



        }


    }
}

//This just lists keys to me
if (doc.type === 'senconddoc') {

    emit([doc.mapBy, 1] , doc);
}
}

Ответы на вопрос(1)

Ваш ответ на вопрос