这几天做app,绕不开搜索,在没有看mongodb文档的情况下,胡思乱想了半个小时该怎么处理文本搜索,没想到官网对于文本搜索有非常详尽的说明,不看官方文档的码农就是少根筋。本文基本按照 官网的文本搜索 部分翻译,如有错,请各位批评指正!
要在mongodb中使用文本搜索,必须使用text索引和$text *** 作,下面的例子演示了如何创建text索引并且用它进行文本搜索。假设collection存储的数据如下例所示:
在mongodb中做文本搜索,必须要创建文本索引。文本索引建立在collection上,一个collection最多只能建立一个文本索引,文本索引可以cover多个域。如要在上例中的name和description中搜索文本,则可建立文本索引:
在建立文本索引的基础上,我们可以实施文本 *** 作,如下例在name和description中寻找包括java或coffee或shop的文档,这里的$text表示或 *** 作。
当然,也有更精确的搜索 *** 作,如下例中精确寻找包含java或coffee shop的文档
mongodb还提供了排除 *** 作,如下例中的寻找包含java或coffee,但不包括coffee的文档
在很多情况下,我们需要对搜索的结果进行排序,mongodb也为我们提供了这种排序机制,如下例中所示
其实,mongodb对于一般的app中的搜索而言已经足够,在并发度不高的情况下,直接使用即可。如果并发度偏高,可以借助缓存的形式,对常用的搜索关键字,在内存中建立到排表,提升访问效率。
以上就是关于mongoDB在java中怎么根据内嵌文档条件查询全部的内容,包括:mongoDB在java中怎么根据内嵌文档条件查询、node.js获取mongodb中数组子文档中的一个元素、导出mongodb数据库一般要什么文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)