उन सभी के लिए धन्यवाद जिन्होंने मेरी मदद करने की कोशिश की। मैं आपकी मदद की सराहना करता हूं।
मुझे एग्रीगेशन पाइपलाइन के ज़रिए समाधान मिल गया है।
var myArray = ['a', 'b', 'c'];
db.test.aggregate([
{
$unwind: '$chars',
},
{
$match: { chars: { $in: myArray } },
},
{
$group: {
_id: '$_id',
count: { $sum: 1 },
},
},
{
$project: {
_id: 1,
count: 1,
score: { $divide: ['$count', myArray.length] },
},
},
{
$sort: { score: -1 },
},
]);
यह वही है जो कंसोल वापस देता है:
{ "_id" : ObjectId("586ebeacb2ec9fc7fef5ce31"), "count" : 3, "score" : 1 }
{ "_id" : ObjectId("586ebeb9b2ec9fc7fef5ce32"), "count" : 2, "score" : 0.6666666666666666 }
{ "_id" : ObjectId("586ebe89b2ec9fc7fef5ce2f"), "count" : 1, "score" : 0.3333333333333333 }
आशा है कि किसी को यह उपयोगी लगेगा।