다음과 같이 mongodb 문서가 있고 messageTopic, messageTopicQuestion 및 응답 필드에 텍스트 인덱스를 구성했습니다. 텍스트 문자열로 검색하면 전체 결과가 아닌 포함 된 일치하는 레코드 만 기대합니다. 문서.mongodb가 포함 된 레코드에서 검색
예를 들어 아래 문서에서 "private"이라는 단어로 검색하는 경우 결과는 첫 번째 포함 된 문서 만 반환해야하며 두 레코드는 반환하지 않아야합니다. 일치하는 포함 된 문서 만 검색하고 일치하지 않는 문서는 제외하는 방법
{
"_id": ObjectId("586e8efdde81e56032000084"),
"messageTopic": "My Private",
"messageText": [{
"messageTopicQuestion": "agent private",
"answer": "agent private",
"_id": ObjectId("586e8efdde81e56032000085"),
"keywords": ["private"]
}, {
"messageTopicQuestion": "Greetings Checking",
"answer": "Heloo I am good What about u",
"_id": ObjectId("586fc80ccced739407000f4e"),
"keywords": ["Hi-Good", "Heloo"]
}],
"__v": 3
}
나는
db.getCollection('messagetemplates').aggregate([{
$match: {
$text: {$search: 'private'},
visible: 'PUB'
}
},{ $sort: { score: { $meta: "textScore" } } }])
하는 도움을 주셔서 감사합니다 스크립트 이하로 사용하고 있습니다. 감사.