加入MySQL和MongoDB数据的最佳方式

时间:2014-04-21 07:18:43

标签: php mongodb symfony aggregation-framework

我在PHP中使用Symfony,MariaDB和MongoDB创建了一个应用程序。

应用程序的需求需要具有层次结构(关系),其中MariaDB负责并且每个记录不同更多是文档记录,MongoDB用于解决它。 MongoDB聚合框架它通过动态定制生成器用于统计报告。

当您需要在MongoDB中交叉信息(JOIN)时会出现问题

样品:

; Sample model
A -- 1:M -- B
B -- 1:M -- C
C -- M:M -- D
A -- 1:M -- E

每个实体至少有2列

  • id:AUTOINCREMENT PRIMARY KEY
  • slug:Mongo ObjectID

现在随机实体A(id = 24)在mongodb上有以下数据(文档)

{
  name: "Motoko Kusanagi",
  powers: ["Superhuman strength", "genius-level intellect", "first-class hacker"]
}

并且有2个D实体(通过C - > B - > A(id = 24))并带有以下数据

// D(id = 35)
{
  date: "2005-10-30 T 10:45 UTC",
  kills: 2
}

// D(id = 1235)
{
  date: "2007-11-09 T 11:20 UTC",
  tachikoma: 2,
  kills: 5
}

示例报告:

  • 我想知道Kusanagi的主要杀人次数
  • 我想知道什么时候有更多杀人事件
  • 我想知道在X期(2005年之后或2006-04-10之前)发生了多少人死亡,按时间(天或月或年)分组

当前的开发可以解决以前的问题,但仅限于数据存在于一个文档中。我如何加入数据,或者我如何建立一个搜索所有这些东西的索引

0 个答案:

没有答案