مجموعة الاستعلام المضمنة في مشروع الأشرعة مع mongodb
-
27-12-2019 - |
سؤال
أنا أستخدم Sails-mongo في مشروعي وأحتاج إلى تنفيذ استعلام واحد في مجموعة مضمنة.بياناتي هي مثل ما يلي:
{
"_id" : ObjectId("53906c6254f36df504e99b8f"),
"title" : "my post"
"comments" : [
{
"author" : "foo",
"comment" : "foo comment"
},
{
"author" : "bar",
"comment" : "bar comment"
}
],
"createdAt" : ISODate("2014-06-05T13:10:58.365Z"),
"updatedAt" : ISODate("2014-06-05T13:10:58.365Z")
}
على سبيل المثال، أنا بحاجة لاستخراج comments
من المؤلف foo
.
من الواضح أن الأشرعة لا تدعم هذه الميزة حتى الآن، لذلك كنت أفكر في استخدام الكائن db
ل mongodb-native لإجراء هذا النوع من الاستعلام.
نظرًا لأن Sails-mongo يستخدم mongodb-native، فهل يمكنني الوصول إلى كائن db في مشروع الأشرعة الخاص بي؟أو سأحتاج إلى إنشاء اتصال جديد باستخدام mongodb-native؟
إذا كان لدى أي شخص فكرة أفضل سأكون ممتنًا.شكرًا
المحلول
إذا كان كل ما عليك فعله هو وصول التعليقات المضمنة، يجب أن يعمل Waterline بشكل جيد.فقط قم بعمل عادي find
أو findOne
, ويجب أن تكون التعليقات متاحة على الكائنات التي تم إرجاعها.
إذا كنت بحاجة إلى استفسار التعليقات، على سبيل المثال.للعثور على المشاركات التي تحتوي على تعليقات لمؤلف معين، يمكنك الوصول إلى المحتوى الأساسي mongodb-native
جمع باستخدام .native()
طريقة فئة نموذج الأشرعة الخاصة بك:
Post.native(function(err, collection) {
if (err) {
// handle error getting mongo collection
}
collection.find({'comments.author':'foo'}).toArray(function(err, results) {
// Do something with results
});
});