我有两个系列。
LogData
[{
"SId": 10,
"NoOfDaya" : 9,
"Status" : 4
}
{
"SId": 11,
"NoOfDaya" : 8,
"Status" : 2
}]
OptData
[ {
"SId": 10,
"CId": 12,
"CreatedDate": ISO(24-10-2014)
}
{
"SId": 10,
"CId": 13,
"CreatedDate": ISO(24-10-2014)
}]
现在使用mongoDB我需要找到表格中的数据
select a.SPID,a.CreatedDate,CID=(MAX(a.CID)) from OptData a
Join LogData c on a.SID=c.SID where Status>2
group by a.SPID,a.CreatedDate
LogData有600条记录,而OPTData有90万条记录在生产中。我需要经常更新LogData,这就是它在单独集合中的原因。
答案 0 :(得分:0)
由于MongoDB不支持JOIN,因此您必须执行两个单独的查询并在应用程序层上执行JOIN。只有600个文档,集合LogData非常小,因此将它完全加载到应用程序内存中并使用它来丰富OptData返回的结果应该没有问题。
另一种选择是通过在OptData中的相应文档中镜像LogData所需的字段来对LogData中的数据进行非规范化。所以你的OptData文档看起来像这样:
{
"SId": 10,
"CId": 12,
"CreatedDate": ISO(24-10-2014),
"LogStatus": 2
}