2014-06-25 4 views
0

J'ai deux types de documents (les deux sont dans la même base de données) dans mon divch-db, maintenant j'ai créé une vue qui peut lier les deux documents par "_id" et retourner les données en utilisant le divan -db voir l'URL. Et maintenant je veux obtenir des données des deux types dans la fonction de carte. Les types de documents et de code sont indiqués ci-dessous.Lien documents dans CouchDB

Documents

department { 
       "_id": "1", 
       "department": "Computers", 
       "type": "Department", 
       "room_no": "102", 
       "HOD": "Mr. G Rahul", 
       "floor": "1st Floor" 
      } 

student { 
      "_id": "fdf370e2f43d4af1b505b8913502a5e4", 
      "_rev": "1-16df9a4cd45ca69009ab6c9767425a8e", 
      "student Name": "H Ravi", 
      "date_of_birth": "March 1, 1993", 
      "roll_no": "55", 
      "inter_marks": "820", 
      "secondary_marks": "420" 
      "department_id": "1", 
      "type": "student" 
     } 

Plan-Fonction

function(doc) { 
      var id,department,student,hod,dob; 
      if(doc.type == 'student') { 
        id = doc.department_id; 
        dob = new Date(doc.date_of_birth) 
       student = doc;  
     } 
     if(doc.type == 'department') { 
      if(doc._id == 'id') { 
      hod = doc.HOD; 
       department = doc; 
     } 
     } 
    emit([dob,hod], {'_id': id,"student_doc": student,"depart_doc":department}); 
} 

La deuxième si condition n'est pas en cours d'exécution dans la fonction ci-dessus. Le code ci-dessus est carte-fonction seulement.

Répondre

0

Envelopper les deux tests à l'intérieur d'une seule instruction if:

function(doc) { 
    var id,department,student,hod,dob; 
    if(doc.type) { 
     if(doc.type === 'student') { ... } 
     if(doc.type === 'department') { ... } 
    } 
    emit([dob,hod], {'_id': id,"student_doc": student,"depart_doc":department}); 
} 
+0

Voici ma question principale était « basée sur ** department_id ** dans le document de type étudiant, je veux obtenir le document de type du département en utilisant la carte-fonction – Raghavendra

+0

Cela ne fonctionne pas comme ça: la fonction map examine uniquement un document à la fois et émet les champs que vous spécifiez à partir de ce document. –

Questions connexes