MongoDB - 按字段组合查询

时间:2015-02-01 16:09:35

标签: mongodb autocomplete full-text-search typeahead

例如,我有描述礼堂的文件。集合中的每个文档至少包含两个字段:roombuilding。在我的用户界面中,我的礼堂显示如下:room - buildingroom与连字符和building连接在一起)。

我想实现一个带有一个字段的typeahead(自动完成),以按描述的格式进行搜索。为了说明,假设我们有两个文档:{ "room": "301", "building": "18" }{ "room": "204", "building": "26" }

26-26204-2204-26查询应返回第二个文档。

301301-301-1301-18查询应返回第一个。

我如何在MongoDB中执行此操作?如果需要,我不介意使用文本索引。

2 个答案:

答案 0 :(得分:0)

您可以在每个文档中存储格式为room-building的第三个字段。然后在此字段中添加索引并搜索它。

答案 1 :(得分:0)

这应该在前端完成,而不是在数据库上完成。

最好的方法是查询所有可能的room-building值,并使用映射到room-building值的_id键在前端填充数组。

然后使用jQuery autocomplete widget之类的东西,其中包含所有可能room-building值的数组。当用户选择特定的room-building时,您可以使用该阵列访问文档_id,以便快速查询该礼堂所需的数据。