MongoDB 最佳匹配过滤器

Posted

技术标签:

【中文标题】MongoDB 最佳匹配过滤器【英文标题】:MongoDB best match filter 【发布时间】:2017-06-26 10:33:19 【问题描述】:

我有一个关于 MongoDB 过滤的问题。I am looking at the class Filters

我将面部大小参数作为(键,值)添加到数据库中。 稍后我想在数据库中找到新面孔和已有面孔之间的匹配项。我想搜索该值并获得最佳匹配面孔。例如,如果我的 (key,value) 是 (face,100) 并且没有完全匹配。给我返回最接近的结果,它可能是 (face,88) 或 (face,110)。 非常感谢

【问题讨论】:

这个问题本身有点“模糊”。你能更具体地谈谈你的情况吗?您正在查看一组非常标准的数据库查询运算符,但没有什么说我们也不能“蛮力”计算。 Neil 我的文档包含键和值在。基本上它称为最佳匹配。它可能是更高的数字或更低的数字,但我想得到最接近的。例如,我正在搜索值“facesize”:100 给出所有最接近 100 的面孔,它可能是 88 或 110,但我想最接近我在数据库中的面孔 您能否编辑您的问题并给我们一个清晰的示例,说明您需要将其作为真实案例进行匹配?刚刚发表评论,然后我说“蛮力”计算,然后对“差异”进行排序。但是,如果您花时间解释一个真实案例,那么可能会有一个合理且更优雅的解决方案。 我已经编辑了这个问题。非常感谢 mongodb - Find document with closest integer value的可能重复 【参考方案1】:

浮点值的最佳匹配可能是:

db.collection.find(floatVal : $gte : 1.0).sort(floatVal : 1).limit(1)

如果您想双向查看,会有点困难,但$cond 应该是可能的

【讨论】:

谢谢 :-) 我会试试并告诉你

以上是关于MongoDB 最佳匹配过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb:在 find() 中使用 $or 时返回匹配的过滤器

MongoDB JAVA API Filters

MongoDB CRUD之D

翻译MongoDB指南/CRUD操作

在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档

Spring数据mongodb过滤字符串集合中的嵌套对象ID