Doctrine CouchDB ODM:当您没有';我不知道';s型

Doctrine CouchDB ODM:当您没有';我不知道';s型,doctrine,couchdb,Doctrine,Couchdb,因此,我不知道要检索的文档类型,因此不知道如何以条令方式检索此文档。 通常我会这样想: $dm->find('User', 12345); 我应该得到用户类。 但是如果我不知道文件的类型呢?它存储在文件中,所以条令应该能找到它。我应该打个简单的电话 $dm->find(12345); //of course this doesn't work 而条令应该查看文档中的“type”字段并返回用户类 当然,我可以用手来做,但也许有一种理论方法可以解决这个问题 因此,我的问题是:如何检索

因此,我不知道要检索的文档类型,因此不知道如何以条令方式检索此文档。 通常我会这样想:

$dm->find('User', 12345);
我应该得到用户类。 但是如果我不知道文件的类型呢?它存储在文件中,所以条令应该能找到它。我应该打个简单的电话

$dm->find(12345); //of course this doesn't work
而条令应该查看文档中的“type”字段并返回用户类

当然,我可以用手来做,但也许有一种理论方法可以解决这个问题


因此,我的问题是:如何检索(使用条令)文档并实例化正确的类(取决于文档中的“类型”字段)?

我认为通常情况下,您会希望为要查看的每种逻辑类型的数据开发一个实例,无论它位于文档图中的何处

否则,您可以编写一个查看每个文档的视图,递归地遍历每个属性,并找到值
12345
,但这当然可能非常缓慢


视图可以查看您的
类型
属性(即)和
emit()
正确的对象

我认为,通常情况下,您会希望为要查看的每种逻辑类型的数据(无论数据位于文档图中的何处)开发一个逻辑模型

否则,您可以编写一个查看每个文档的视图,递归地遍历每个属性,并找到值
12345
,但这当然可能非常缓慢


视图可以查看您的
类型
属性(即)和
emit()
正确的对象

如果我错了,请纠正我,但我认为通过id获取文档并不涉及所有文档的循环?我认为“by id”视图已经存在,调用它会很快检索到id为12345的文档,因为它是散列的,不需要每次都迭代。视图的结果以增量方式存储在B树结构中,以便更快地检索,但第一次,它们必须进行迭代。请注意,在我的回答中,我确实说了“遍历每个属性”,我指的是视图中操作的每个文档的属性,因为您在子属性中查找特定值。如果我错了,请更正我,但我认为通过_id获取文档并不涉及遍历所有文档?我认为“by id”视图已经存在,调用它会很快检索到id为12345的文档,因为它是散列的,不需要每次都迭代。视图的结果以增量方式存储在B树结构中,以便更快地检索,但第一次,它们必须进行迭代。请注意,在我的回答中,我确实说了“遍历每个属性”,我指的是视图中操作的每个文档的属性,因为您在子属性中查找特定的值。