【发布时间】:2013-04-08 16:35:35
【问题描述】:
我想构建一个查询,返回数据库中最匹配的文档。
即我想查找包含以下字段的文档 - “动物”:“狗” “颜色”:“棕色” “图案”:“点” “大小”:“小”
如果没有包含上述所有字段及其对应值的文档,我希望查询返回最佳匹配。 f.e {“动物”:“狗”,“颜色”:“棕色”,“尺寸”:“小”}
我可以在 mongo db 中实现递归查询吗?如果是这样,怎么做? 我应该使用 mapReduce,如果是,如何使用? 人们可以将此问题更多地视为推荐系统问题,我想推荐最适合给定值的项目(文档),如果有人知道实现上述方法的好方法,我将不胜感激
我正在使用 mongodb mongoose 和 nodejs。
谢谢。
【问题讨论】:
-
只是一个想法——您也许可以使用聚合框架来匹配字段,并为匹配的数量保留一个计数(分数),然后对其进行排序 (docs.mongodb.org/manual/tutorial/aggregation-examples) . (而且,不,你不能在本地进行“递归查询”)。
标签: node.js mongodb mongoose recommendation-engine