سؤال

أنا أستخدم 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
    });
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top