我有两个现有集合,需要根据两个现有集合之间的比较来填充第三个集合。
需要比较的两个集合具有以下架构:
// Settings collection:
{
"Identifier":"ABC123",
"C":"1",
"U":"V",
"Low":116,
"High":124,
"ImportLogId":1
}
// Data collection
{
"Identifier":"ABC123",
"C":"1",
"U":"V",
"Date":"11/6/2013 12AM",
"Value":128,
"ImportLogId": 1
}
总的来说,我是 MongoDB 和 NoSQL 的新手,所以我很难掌握如何做到这一点。SQL 看起来像这样:
SELECT s.Identifier, r.ReadValue, r.U, r.C, r.Date
FROM Settings s
JOIN Reads r
ON s.Identifier = r.Identifier
AND s.C = r.C
AND s.U = r.U
WHERE (r.Value <= s.Low OR r.Value >= s.High)
在这种使用示例数据的情况下,我想返回一条记录,因为数据集合中的值大于设置集合中的高值。这可能使用 Mongo 查询或 map reduce,还是这种糟糕的集合结构(即,也许所有这些都应该在一个集合中)?
还有一些额外的说明:设置集合实际上应该每个“标识符”只有 1 条记录。数据集合将有每个“标识符”的许多记录。此过程可能一次扫描数十万份文档,因此资源考虑有些重要