Ich habe folgendes Schema:Mongoose Textindex für verschachteltes Schemafeld
const Schema = ({
metadata: {
title: String,
...
},
...
});
und ich suche einen eines Textindex für metadata.title
zu erstellen. Ich kann einen Textindex erfolgreich auf jeder Eigenschaft der ersten Ebene erstellen, aber ich habe Probleme mit dem verschachtelten Titel.
Ich habe den folgenden Code vergeblich versucht. Ist meine Syntax falsch? Ich habe kein Glück mit docs hatte ...
Schema.index({ 'metadata.title': 'text' });
Searching:
Schema
.find(
{ $text : { $search : req.params.query } },
{ score : { $meta: "textScore" } })
Startete Kopfgeld- aber stellt sich heraus, dass gegenwärtige Antwort das Problem löst. Wird dort Kopfgeld geben. –
Ihr ursprünglicher Versuch von 'Schema.index ({'metadata.title': 'text'});' ist der richtige Weg, dies zu tun und funktioniert gut, wenn ich es versuche. Die derzeit akzeptierte Antwort erstellt nur einen traditionellen Index, keinen Textindex. Die Verwendung von 'Schema' für Ihr Schema (und Ihr Modell) ist ein wenig verwirrend, da Sie diesen Bezeichnernamen wirklich als' Schema'-Konstruktor behalten sollten. – JohnnyHK
Ja, es heißt in meinem Code etwas anderes, ich habe Schema hier nur als Platzhalter benutzt ... sorry. Und ja, tatsächlich funktioniert mein ursprünglicher Versuch so, wie du gesagt hast ... Wem schenk ich das Kopfgeld zu? –