2011-08-17 15 views
5

मैंएसक्यूएल से मोंगोडीबी?

"SELECT * FROM TABLE_NAME 
    WHERE 
     name like '$query_string' or 
     title like '%$query_string%' or 
     tags like '%$query_string%'" 
MongoDB को

लागू करना चाहते हैं, और मैं

$condition = array('$or' => 
    array('writer'=> array('name'=>"$query_string"), 
      'title'=> new MongoRegex("/$query_string/"), 
      'tags' => new MongoRegex("/$query_string/"))); 

की कोशिश की और यह काम नहीं करता।

MongoDB है कि एसक्यूएल लागू करने के लिए उचित तरीका क्या है?

उत्तर

3

यहाँ कैसे मैं एक केस-संवेदी निर्माण है, "शामिल है" अवधि

$containsTerm = new MongoRegex(sprintf('/%s/i', preg_quote($term, '/'))); 

तो अपनी हालत

कैसा लग सकता है पढ़
$condition = array('$or' => array(
    'writer.name' => $term, 
    'title'  => $containsTerm, 
    'tags'  => $containsTerm 
)); 

माफ़ी अगर स्थिति सरणी गलत है, तो मैं आम तौर पर Doctrine ODM

+0

मुझे नहीं पता था मैं 'लेखक' => सरणी ('नाम' => "$ QUERY_STRING") के बजाय 'writer.name' जैसी क्वेरी कर सकते हैं। बहुत प्रभावशाली! – InspiredJW

+0

@JeongWooChang नीचे "Arrays" शीर्षक वाला अनुभाग देखें - http://php.net/manual/en/mongo.queries.php – Phil

+0

आपको बहुत बहुत धन्यवाद :) – InspiredJW