Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB-按字段组合查询_Mongodb_Autocomplete_Full Text Search_Typeahead - Fatal编程技术网

MongoDB-按字段组合查询

MongoDB-按字段组合查询,mongodb,autocomplete,full-text-search,typeahead,Mongodb,Autocomplete,Full Text Search,Typeahead,例如,我有描述礼堂的文档。集合中的每个文档至少有两个字段:room和building。在我的UI中,我的礼堂显示如下:房间建筑房间用连字符和建筑连接起来 我想实现一个typeahead自动补全,其中有一个字段可以按所描述的格式进行搜索。为了举例说明,假设我们有两个文件:{301室,18号楼}和{204室,26号楼} 26、-26、204-2或204-26查询时应返回第二个文档 301、301-、301-1或301-18查询应返回第一个查询 我如何在MongoDB中做到这一点?如果需要,我不介意使

例如,我有描述礼堂的文档。集合中的每个文档至少有两个字段:room和building。在我的UI中,我的礼堂显示如下:房间建筑房间用连字符和建筑连接起来

我想实现一个typeahead自动补全,其中有一个字段可以按所描述的格式进行搜索。为了举例说明,假设我们有两个文件:{301室,18号楼}和{204室,26号楼}

26、-26、204-2或204-26查询时应返回第二个文档

301、301-、301-1或301-18查询应返回第一个查询


我如何在MongoDB中做到这一点?如果需要,我不介意使用文本索引。

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

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

最好的方法是查询所有可能的房间建筑值,并用映射到_id值的房间建筑键填充前端的数组

然后使用类似于fed的东西,并将所有可能的房间建筑值组合在一起。当用户选择一个特定的房间建筑时,您可以使用数组访问文档id,以非常快速地查询该礼堂所需的数据