如何将一组非平凡数据与一系列非平凡数据相匹配?

时间:2014-05-25 07:57:48

标签: json node.js mongodb associations matching

我有一段数据,如:

data = { 
          occupation: doctor,
          waistSize: 32, 
          height: 67
       }

我还有另一段数据,我们将其称为数据范围,它看起来像:

dataRange = {  
               rangeName : rangeOne,
               occupation: [doctor, lawyer, teacher],
               waistSize : {min: 28, max: 40}, 
                  height : {min: 50, max: 70}
            }

我的问题是,如何快速有效地找到包含“数据”的所有“dataRanges”。我不一定需要一个完整的答案,只需要提出一些建议。我的程序将包含几百个“dataRanges”,我需要能够找到包含变量“data”的所有“dataRanges”。

我想到的答案如下所示,但我觉得这非常低效,特别是当“dataRange”中的字段数量接近35时。

db.dataRanges.find( { occupation: { $elemMatch: data.occupation } }, 
                    { waistSize.min: {$lt : data.waistSize } },
                    { waistSize.max: {$gt : data.waistSize } } ,
                    { height.min: {$lt : data.height} },
                    { height.max: {$gt : data.height} } );

另外,最终我们想要创建一个系统,你有一个“matchPercentage”,这个值将表示“data”在“dataRange”中的接近程度。

需要使用node.js和mongodb来实现解决方案。

0 个答案:

没有答案