gpt4 book ai didi

mongodb - Native Mongo Query Doctrine ODM

转载 作者:可可西里 更新时间:2023-11-01 09:14:22 25 4
gpt4 key购买 nike

在关系数据库的 Doctrine 中,我们有 QueryBuilder,可以手动编写 DQL 查询,如果我们真的必须,可以使用 Doctrine 的连接来执行原始 SQL。我没有在 doctrine 的 mongo 项目中找到(也没有在 API 和文档中)执行此操作的方法。

如何使用 mongo odm 执行 native 查询?(除了注入(inject) doctrine_mongodb.odm.default_connection,还是那真的是唯一的方法?)

最佳答案

在您的文档存储库中,您可以像这样添加一个私有(private)方法:

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 ),您可以通过它使用 native Mongo 查询(通过类接口(interface))。你不能完全写出文字查询,但是,通过界面你可以做任何你想做的事情,查询,聚合等等......

这就是你需要做的?

问候

关于mongodb - Native Mongo Query Doctrine ODM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com