Domanda

Ho due basi di dati in CouchDB - documenti di DB1 sono dati utente - nome, indirizzo e-mail, nome utente, password, ma entro un campo che posso conservare un elenco di ID salvato in DB2 in cui vengono salvati progetti utente (che contiene un campo nome utente e alcuni Campi di testo.

    Example DB1 Document (Users)

       {
   "_id": "bobsmith1000",
   "_rev": "83-1e00173cac0e736c9988d3addac403de",
   "first_name": "Bob",
   "password": "$2a$12$sdZUkkyDnDePQFNarTTgyuUZS6DL13JvBk/k9iUa5jh08gWAS5hpm",
   "second_name": "Smith",
   "urls": null,
   "email": "bob@smith.com",
   "projects": [
       "ee5ccf56da22121fd71d892dbe051746",
       "ee5ccf56da22121fd71d892dbe0526bb",
       "ee5ccf56da22121fd71d892dbe053433",
       "ee5ccf56da22121fd71d892dbe056c71",
       "ee5ccf56da22121fd71d892dbe0579c3",
       "ee5ccf56da22121fd71d892dbe05930d"
   ]
}

Example DB2 Document (Projects)

{
   "_id": "ee5ccf56da22121fd71d892dbe05930d",
   "_rev": "1-c923fbe9de82318980c7778c4c089321",
   "url": "http://harkmastering.s3.amazonaws.com/testprojects/testfolder.zip",
   "username": "bobsmith1000",
   "time": "2010-10-29 07:13:47.377085",
   "file_size": "5.2 MB"
}

Sto cercando di scrivere una vista in Python (utilizzando il framework web Flask e libreria Python CouchDB) che verifica DB1, afferrare tutti gli ID di progetto, e poi andare a DB2 e in un pull modo lotto l'URL, il tempo , la dimensione del file per ogni documento con iD corrispondenti in modo da posso può disporre che i dati in una tabella.

I iniziata solo la programmazione all'inizio di quest'anno e questo comporta tecniche che posso solo immaginare. Qualcuno può aiutarmi a trovare una soluzione?

saluti grazie

È stato utile?

Soluzione

Se non avete grandi motivi per dividere tuoi documenti in diversi DBS, che sembra non è il caso in base alla tua domanda, li si dovrebbe tenerli tutti sulla stessa base di dati e hanno alcune proprietà sui documenti per identificare il loro tipo ( come un "tipo: utente" e "tipo: progetto")

.

In questo modo è possibile ottenere il risultato desiderato in una singola vista CouchDB senza troppi problemi. Nella funzione guarda la mappa sarà sufficiente per emettere tasti come [ "username", 0] e [ "username", "projectname"]. In Javascript che potrebbe essere:

function(doc) {
 if (doc.type == "user") {
  emit([doc._id,0],null);
 } else if(doc.type == "project") {
  emit([doc.username,doc._id],null);
 }
}

è possibile interrogare questo punto di vista e hanno un insieme organizzato di documenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top