سحب البيانات من مستند CouchDB عبر IDS في آخر (Python)

StackOverflow https://stackoverflow.com/questions/4052220

  •  27-09-2019
  •  | 
  •  

سؤال

لديّ قواعدتان في CouchDB - مستندات DB1 هما بيانات المستخدم - الاسم وعنوان البريد الإلكتروني واسم المستخدم وكلمة المرور ولكن في حقل واحد أقوم بتخزين قائمة بالمعرف المحفوظة في DB2 حيث يتم حفظ مشاريع المستخدم (تحتوي على حقل اسم المستخدم وبعض حقول النص.

    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"
}

أحاول كتابة طريقة عرض في Python (باستخدام Flask Web Framework و Python Couchdb Library) التي ستتحقق كل وثيقة ذات معرفات مطابقة حتى أتمكن من وضع هذه البيانات في جدول.

لقد بدأت فقط في البرمجة في وقت سابق من هذا العام ، وهذا يتضمن تقنيات لا يمكنني تخيلها إلا. هل يمكن لأي شخص مساعدتي في العثور على حل؟

شكرا

هل كانت مفيدة؟

المحلول

ما لم يكن لديك أسباب رائعة لتقسيم مستنداتك في DBS مختلفة ، يبدو أن هذا ليس هو الحال وفقًا لسؤالك ، يجب عليك الاحتفاظ بها جميعًا على نفس قاعدة البيانات ولديها بعض الممتلكات على المستندات لتحديد نوعها (مثل ". النوع: المستخدم "و" النوع: المشروع ").

وبهذه الطريقة يمكنك الحصول على النتيجة المرجوة على عرض CouchDB واحد دون الكثير من المتاعب. في وظيفة عرض الخريطة الخاصة بك ، ستحتاج فقط إلى إصدار مفاتيح مثل ["اسم المستخدم" و 0] و ["اسم المستخدم" ، "ProjectName"]. في JavaScript سيكون ذلك:

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

يمكنك الاستعلام عن هذا العرض ولديهم مجموعة منظمة من المستندات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top