私たちは以下のようなmongodbドキュメントを持っています。私はテキスト文字列で検索するとmessageTopic、messageTopicQuestion、answerフィールドにテキストインデックスを設定しました。資料。mongodb埋め込みレコードで検索
たとえば、以下のドキュメントで「私」という単語を検索すると、結果は両方のレコードではなく最初の埋め込みドキュメントのみを返します。一致した埋め込みドキュメントのみを取得し、不一致のドキュメントを除外する方法。私は、スクリプト
db.getCollection('messagetemplates').aggregate([{
$match: {
$text: {$search: 'private'},
visible: 'PUB'
}
},{ $sort: { score: { $meta: "textScore" } } }])
の下に使用しています
{
"_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
}
助けに感謝。ありがとう。