您好我正在为猫鼬收藏品创建搜索选项。问题在于关键字处理。我需要处理关键字,例如它们是否在""它们应该被视为单个单词,如果它们以逗号分隔或空格分隔,那么它们应该被视为OR条件参数,这些如何跟踪多个输入""和逗号分开。任何参考或示例都会非常有用。
答案 0 :(得分:0)
查看$text运营商文档。
假设您有一个名为posts
的集合,其中包含以下文档:
{postText: 'The dog ran really fast.'},
{postText: 'The cat ran pretty slow.'},
{postText: 'That hampster is crazy fast.'}
确保您已创建文本索引。
db.posts.createIndex({postText: "text"})
对于你的情况,只需传递用空格分隔的关键字。
// this will return all documents
db.posts.find({$text: {$search: 'dog cat hampster'}})
// this will return two documents (dog & hampster)
db.posts.find({$text: {$search: 'really fast'}})
要准确匹配短语,请将其用引号括起来。
// this will return one document (dog)
db.posts.find({$text: {$search: '"really fast"'}})
您也可以将它们合并。
// this will return all documents
db.posts.find({$text: {$search: '"really fast" cat'}})
希望有所帮助。