【发布时间】:2014-01-12 15:11:02
【问题描述】:
在我的 mongodb 中,我有一个集合,其中 id-field 不是 object-Id 我不知道为什么它是这样构建的,我无法从头开始更改它,因为可能有很多软件已经在使用这种模式。
但是,这样的 Icecream 文档是这样的:
{
"_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"} [] []
有人知道吗?
【问题讨论】:
标签: php mongodb symfony doctrine-orm doctrine