我有一个进程运行一个增量映射缩减到一个集合,我在这个集合中查看不同时间段的指标 - 按 id(s) 和日期分组。所以我的输出集合本质上有一个复合 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 处理有任何意见,这是否受支持?
编辑: 删除了复合主键标记 - 问题实际上与使用对象作为主键有关。
最佳答案
我不确定这是否是您问题的核心:Composite Primary Keys tutorial
看起来你只能有整数和字符串的复合主键(所以没有日期?)。
关于mongodb - Doctrine2 ODM - 对象(或嵌入式文档)作为_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322842/