本文介绍了Doctrine MongoDB通过id查找的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用odm mongo原则,而我必须使用文档类
I'm using odm mongo doctrine and I have to document-classes
class Thing
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\ReferenceOne(targetDocument="Bundle1:Other")
*/
protected $other;
}
和
class Other
{
/**
* @MongoDB\Id
*/
protected $id;
}
所以在数据库中,一个东西看起来像:
so in the database a thing looks like :
{
"_id":ObjectId("43z758634875adf"),
"other":ObjectId("38z287348d8se")
}
我现在如何查询其他是给定ID的内容?
How can I now query for things where other is a given id ?
$dm=$this->mongo->getManager();
$answers=$dm
->createQueryBuilder('Bundle1:Thing')
->field('other')->equals("ObjectId(516c0061975a299edc44b419)") // <-- ?
->getQuery()
->execute()->count();
这会产生错误的mongo查询
This produces a wrong mongo query
当我使用
查询也是错误的
那么如何搜索其他id等于objectId的东西?
So how can I search for thing where other id equals an objectId ?
推荐答案
尝试
->field('other')->equals(new \MongoId("516c0061975a299edc44b419"))
ObjectId是Mongo的内部类型,由PHP中的\MongoId()表示)
ObjectId is the internal type for Mongo, represented by \MongoId() in PHP
(但我也在第一个主题中回答)
( But i have also answered in the first topic )
这篇关于Doctrine MongoDB通过id查找的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!