我正在使用Spring Boot运行从我的Mongo数据库读取的GraphQL服务器。
所以我有一些具有ID的文档:
4336-dummyDemo-0008
和5984-dummyDemo-0001
我在其中保存了Mongo字段,并设置了@TextIndexed
字段,以便我可以运行文本搜索-就像在我的解析器中一样:
fun song(options: SongOptions): List<Song> {
val query = Query()
if (options.textSearch.isNotBlank()) {
val words = options.textSearch.split(SPACES)
query.addCriteria(
TextCriteria
.forDefaultLanguage()
.caseSensitive(false)
.diacriticSensitive(false)
.matchingAny(*words.toTypedArray())
)
}
query.with(Sort.by(options.sortDirection, options.sortBy))
.limit(options.limit)
.skip(options.skip.toLong())
return mongoTemplate.find(query, Song::class.java)
}
如果我搜索options.textSearch
,现在遇到的问题在我的搜索文本字段或上面的4336-dummyDemo-0008
中-它同时返回4336-dummyDemo-0008
和5984-dummyDemo-0001
。好像两者都与dummyDemo
部分匹配。
我该如何解决这个问题,以便在我完成那个特定值时只返回一个项目?
任何想法表示赞赏。
谢谢。