一些mongo文档User包含嵌入文档Message的数组,其中有一些sting成员'text':
/**
* @MongoDB\EmbeddedDocument
*/
class Message {
/**
* @MongoDB\Field(type="string")
*/
protected $text;
}
/**
* @MongoDB\Document(collection="chats")
* @JMS\ExclusionPolicy("none")
*/
class User {
/**
* @MongoDB\EmbedMany(targetDocument=myBundle\Document\Message", strategy="addToSet")
*/
protected $messages = array();
}
如何搜索某些子字符串中datbaase中所有用户的messages.text?因此,如果某个用户有“Hello Bob!”消息,则可以通过搜索“Bob”来找到该消息。
答案 0 :(得分:1)
您尝试过类似的事情吗?
$product = $this->get('doctrine_mongodb')
->getManager()
->createQueryBuilder('YourOwnBundle:User')
->field('messages.text')->equals(new \MongoRegex('Bob'))
;
如果您想在此类请求中进行一些演出,请记住使用全文索引!