Wir haben ein Mongodb-Dokument wie unten angegeben, und wir konfigurierten Textindex auf MessageTopic, MessageTopicQuestion und Antwortfelder, wenn ich mit einer Textzeichenfolge Suche dann erwarte ich nur übereinstimmende eingebettete Datensätze in den Ergebnissen nicht die gesamte Dokument.Suche in mongodb eingebettete Datensätze
Zum Beispiel im unteren Dokument, wenn ich mit dem Wort "private" suche, dann Ergebnisse sollten nur das erste eingebettete Dokument nicht beide die Datensätze zurückgeben. Wie Sie nur übereinstimmende eingebettete Dokumente abrufen und nicht übereinstimmende Dokumente ausschließen.
{
"_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
}
ich unten Skript bin mit
db.getCollection('messagetemplates').aggregate([{
$match: {
$text: {$search: 'private'},
visible: 'PUB'
}
},{ $sort: { score: { $meta: "textScore" } } }])
Hilfe schätzen. Vielen Dank.