أهلا،
لدي مشكلة في فهم شيء ما أو أنه تم التنصت عليه.
لنبدأ. هنا وثائق حول DBRefs:
http://docs.mongodb.org/manual/reference/database-references/#dbrefs
يكتبون أن هيكل الوثيقة مع الإشارة يجب أن يكون:
{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users"
}
}
الآن دعنا نلقي نظرة على هذا المثال (مثال 1):
https://gist.github.com/hastebrot/1170907
عندما أقوم بتشغيل هذا الرمز ، يكون لدي شيء من هذا القبيل:
قصة:
"title": "A man who cooked Nintendo",
"_creator": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"_id": {
"$oid": "52e7dceb3d9cd59c13702e3e"
},
"fans": [],
"__v": 0
الناس:
"name": "Aaron",
"age": 100,
"_id": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"stories": [],
"__v": 0
في فريقنا ، لدينا تطبيق صغير مكتوب بلغة Java يستخدم مكتبة لـ MongoDB ولكن هذه المكتبة تحفظ البيانات كما هو الحال في وثائق MongoDB:
....//other fields
"user": {
"$ref": "users",
"$id": {
"$oid": "52c6c497c08e6fcf37000001"
}
}
ولا يمكنني تعبئة البيانات لأنها تبدو وكأنها تعمل فقط من أجل تطبيق النمس.
صححني إذا كنت مخطئًا ولكن بالنسبة لي يبدو الأمر كما لو كنت لا تحفظ DBRef كما هو موصوف في الوثائق.
+1
تواجه نفس المشكلة مع تطبيق php باستخدام عقيدة mongodb odm. حاليًا لا يمكنني استخدام db الموجود بالفعل مع النمس لأن كائنات mongodb DBRefs لا تُستخدم لتخزين المراجع.
ربما يجب إضافة نوع مخطط آخر (Schema.DBRef؟)؟
سيؤدي ذلك إلى تحميل المستند بالمعلومات المحددة.
ما زلت لا مدخلات من أي مطور النمس حول هذه المسألة؟ هذه مشكلة متكررة تستمر في الظهور عندما يكون لديك أكثر من سائق واحد يكتب ويقرأ من نفس قاعدة البيانات.
يدعم برنامج تشغيل العقدة DBRefs وأجد أنه من الغريب أن Mongoose لا يزال لا يدعمه.
دعم DBRefs للتعبئة ليس حقًا أولوية عالية لأن مستندات MongoDB توصي بعدم استخدام dbref . يمكنك دائمًا إجراء الاستفسارات بنفسك.
التعليق الأكثر فائدة
ما زلت لا مدخلات من أي مطور النمس حول هذه المسألة؟ هذه مشكلة متكررة تستمر في الظهور عندما يكون لديك أكثر من سائق واحد يكتب ويقرأ من نفس قاعدة البيانات.
يدعم برنامج تشغيل العقدة DBRefs وأجد أنه من الغريب أن Mongoose لا يزال لا يدعمه.