मैं मुसीबत घोंसला बनाने से कई दो संकार्य एक $and
आपरेशन के भीतर $or
संचालन हो रही है। this discussion का निष्कर्ष मुझे वही लगता है जो मुझे चाहिए, लेकिन मैं इसे काम करने में असमर्थ हूं। यहां मैं जो करने की कोशिश कर रहा हूं उसका जावास्क्रिप्ट यहां है:
db.Business.find(
{
$and:
[
{ $or: [{nm: /American/}, {dsc: /American/}] },
{ $or: [{nm: /Mega/}, {dsc: /Mega/}] }
]
}
)
यह मोंगोडीबी इंटरैक्टिव शैल में काम करता है।
$q = $doctrineOdm->createQueryBuilder('Business');
foreach (array('American','Mega') as $keyword) {
$r = new \MongoRegex('/'.$keyword.'/i');
$q->addAnd(
$q->addOr($q->expr()->field('nm')->equals($r))
->addOr($q->expr()->field('dsc')->equals($r))
);
}
print_r($q->getQuery()->getQuery()); // infinite recursion
$cursor = $q->getQuery()->execute();
कोई भी विचार:
और यहाँ कुछ पीएचपी कि मुझे ठीक लग रहा है लेकिन काम नहीं करता है (अनंत प्रत्यावर्तन जहां संकेत दिया कारण बनता है) है?
कि यह वास्तव में था! धन्यवाद! '-> expr()' जोड़ना वास्तव में उचित समय तक '$ या' अभिव्यक्ति जोड़ना देरी करता है। –