[英]Native Mongo Query Doctrine ODM
在關系數據庫的學說中,我們有QueryBuilder,可以手動編寫DQL查詢,如果真的必須,可以使用Doctrine的連接來執行原始SQL。 我沒有在doctrine的mongo項目中找到(在API中,也沒有文檔中)這樣做的方法。
如何使用mongo odm執行本機查詢? (除了注入doctrine_mongodb.odm.default_connection,還是真的唯一的方法?)
在文檔存儲庫中,您可以添加如下私有方法:
private function _getNativeConnection(){
$connection = $this->getDocumentManager()->getConnection();
$mongo = $connection->getMongo();
if(!$mongo){
$connection->connect();
$mongo = $connection->getMongo();
}
//You can use this as literal strings, or pass them as parameters to the method
$db = $mongo->selectDB('YOUR_MONGO_DB')->selectCollection("MONGO_COLLECTION");
return $db;
}
然后,您可以從另一個存儲庫方法使用它,如下所示:
public function another_public_method{
...
$collection = $this->_getNativeConnection();
...
}
$ collection表示PHP MongoCollection( http://php.net/manual/en/class.mongocollection.php ),您可以使用本機Mongo查詢(通過類接口)。 你無法准確地編寫文字查詢,但是,通過界面,你可以做任何你想做的事,查詢,聚合等...
這是你需要做的?
問候
您可以使用此代碼訪問本機查詢的集合
$collection = $documentManager->getDocumentCollection('Vendor\MyDocument');
然后你可以做的事情
$collection->aggregate($pipeline);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.