php – doctrine odm,查找id不是对象id的文档
发布时间:2020-12-13 21:57:34 所属栏目:PHP教程 来源:网络整理
导读:在我的 mongodb中我有一个集合,其中id-field不是object-Id 我不知道为什么它是这样的构建,我不能从头开始更改因为可能很多软件已经使用这种模式. 然而,这就是冰淇淋文件的样子: { "_id": "52d0283ae4b01db941dd763b","insertDate": ISODate("2014-01-10T17:
在我的
mongodb中我有一个集合,其中id-field不是object-Id
我不知道为什么它是这样的构建,我不能从头开始更改因为可能很多软件已经使用这种模式. 然而,这就是冰淇淋文件的样子: { "_id": "52d0283ae4b01db941dd763b","insertDate": ISODate("2014-01-10T17:04:58.617Z"),"language": "en","profile": ObjectId("50e577602b5e05e74b38a6c8"),"related": ObjectId("516c0061975a299edc44b419"),"survey": ObjectId("516c0061975a299edc44b409"),"version": NumberInt(0) } 和mongoshell我会发现它像: db.icecream.find({"_id":"52d0283ae4b01db941dd763b"}) 而不是使用: db.icecream.find({"_id":ObjectId("52d0283ae4b01db941dd763b")}) 所以我尝试了很多查询来找到它,但是教条odm总是没有正确的查询,继承我的最新尝试: return $this->mongo->getManager() ->getRepository('DocumentBundle:Icecream') ->findOneBy(array('_id' => (string)$answerId)); 回归 doctrine.INFO: MongoDB query: {"find":true,"query":{"_id":{"$id":"52ced410e4b0fcc3da3a0c8b"}},"fields":[],"db":"myIcecreamDb","collection":"icecream"} [] [] 有人有什么想法吗? 任何帮助提前感谢! 解决方法
如果你有自己的字符串_id(一个NOT MongoId对象),你可能想要使用Id的’strategy’属性.
use DoctrineODMMongoDBMappingAnnotations as ODM; /** @ODMDocument */ class MyPersistentClass { /** @ODMId(strategy="NONE") */ private $id; public function setId($id) { $this->id = $id; } } 您可以在此处查看文档中的更多选项: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |