هل يصل Key.from_path إلى مخزن البيانات؟
-
22-07-2019 - |
سؤال
لدي قائمة بأسماء المفاتيح التي أريد إحضارها بالجملة (يتم تخزين أسماء المفاتيح في سلسلة stringlistproperty المرفقة بكيان).كانت خطتي العامة هي القيام بما يلي:
usernames = userrefInstance.users # A collection of strings on another
model.
keys = [Key.from_path('User', key_name) for username in usernames]
users = db.get(keys)
أسئلتي هل يصل Key.from_path إلى مخزن البيانات؟أحاول أن أكون بأسرع ما يمكن ، وإذا كان key.from_path يضرب متجر البيانات ، أحتاج إلى العمل طريقة أخرى لتخزين مجموعة من المفاتيح - لا أريد بشكل خاص تخزين الكائن الرئيسي في خاصية القائمة كما أقدم أيضًا استفسارات سهلة الاستخدام عبر StringListPropererties.
المحلول
وبعد حفر والأسئلة على مجموعة أخرى، اتضح ما يلي:
<اقتباس فقرة> يتم تحديدومفاتيح بالكامل من التطبيق ID والمسار، لذلك ليس هناك حاجة ل الوصول إلى مخزن البيانات لهذا الغرض. - نيك جونسون
اقتباس فقرة>وأو يمكنك أيضا استخدام قائمة db.Key
نصائح أخرى
المعلمات التي تنتقل إليها Key.from_path()
تحتوي على جميع المعلومات اللازمة لإنشاء المفتاح الفريد، لذا ليست هناك حاجة للوصول إلى مخزن البيانات.
يحتوي كل كيان في مخزن البيانات على مفتاح يحدده بشكل فريد.يتكون المفتاح من المكونات التالية:
- نوع الكيان الذي يتم تصنيفه لغرض استعلامات مخزن البيانات
- معرف للكيان الفردي، والذي يمكن أن يكون إما
- سلسلة اسم مفتاح
- معرف رقمي صحيح
- مسار أصل اختياري يحدد موقع الكيان داخل التسلسل الهرمي لمخزن البيانات
مصدر: https://developers.google.com/appengine/docs/python/datastore/entities