आप इसे $where
. के साथ कर सकते हैं एक RegExp
बनाकर string1
. के लिए और उसके बाद string2
. के विरुद्ध इसका परीक्षण करना :
db.test.find({$where: 'RegExp(this.string1).test(this.string2)'})
हालाँकि, यदि आप MongoDB 3.4+ का उपयोग कर रहे हैं, तो आप $indexOfCP
एग्रीगेशन ऑपरेटर:
db.test.aggregate([
// Project the index of where string1 appears in string2, along with the original doc.
{$project: {foundIndex: {$indexOfCP: ['$string2', '$string1']}, doc: '$$ROOT'}},
// Filter out the docs where the string wasn't found
{$match: {foundIndex: {$ne: -1}}},
// Promote the original doc back to the root
{$replaceRoot: {newRoot: '$doc'}}
])
या अधिक सीधे $redact
. का उपयोग करके भी :
db.test.aggregate([
{$redact: {
$cond: {
if: { $eq: [{$indexOfCP: ['$string2', '$string1']}, -1]},
then: '$$PRUNE',
else: '$$KEEP'
}
}}
])