例如,我有描述礼堂的文件。集合中的每个文档至少包含两个字段:room
和building
。在我的用户界面中,我的礼堂显示如下:room
- building
(room
与连字符和building
连接在一起)。
我想实现一个带有一个字段的typeahead(自动完成),以按描述的格式进行搜索。为了说明,假设我们有两个文档:{ "room": "301", "building": "18" }
和{ "room": "204", "building": "26" }
。
按26
,-26
,204-2
或204-26
查询应返回第二个文档。
301
,301-
,301-1
或301-18
查询应返回第一个。
我如何在MongoDB中执行此操作?如果需要,我不介意使用文本索引。
答案 0 :(得分:0)
您可以在每个文档中存储格式为room-building
的第三个字段。然后在此字段中添加索引并搜索它。
答案 1 :(得分:0)
这应该在前端完成,而不是在数据库上完成。
最好的方法是查询所有可能的room-building
值,并使用映射到room-building
值的_id
键在前端填充数组。
然后使用jQuery autocomplete widget之类的东西,其中包含所有可能room-building
值的数组。当用户选择特定的room-building
时,您可以使用该阵列访问文档_id
,以便快速查询该礼堂所需的数据。