我有一个运行增量地图的流程缩减到一个集合,我在这里查看不同时间段的指标 - 按ID和日期分组。所以我的输出集合实际上有一个复合id来处理分组。
{
"_id" : {
"site" : 67,
"dt" : ISODate("2012-07-03T00:00:00Z")
},
"value" : {
// Metrics here
}
}
我希望能够使用ODM在我的Symfony2应用程序中从此集合中获取结果 - 但是在_id
字段时遇到问题。我以为我可以将其指定为@Id
和@embedOne
:
/**
* @MongoDB\Id
* @MongoDB\EmbedOne(targetDocument="reportId")
*/
protected $id;
然而,这不起作用。我还尝试使用@Id
设置strategy=NONE
,我可以使用QueryBuilder来获取行,但在尝试保存我的Document类时会出错。我试图阻止网站ID和日期(67-134137916
)并允许我使用DocumentManager,但我无法按日期范围进行查询。
任何人都有关于如何在Doctrine2的ODM中处理对象作为id的任何输入,是否支持?
修改 删除了复合主键标记 - 问题确实与将对象用作主键有关。