javascript - Mongoose indiziert HTML-Text?
Ich habe ein Dokument mit dem Feld HTML. Das HTML-Feld speichert echten HTML.
schema: {
html: String
}
doc: {
"html" : "<p>I am html<p>"
}
Und ich möchte das HTML-Feld indizieren, sodass, wenn ich nach „I am html“ suche, dieses Dokument zurückgegeben wird.
Gibt es eine Möglichkeit, dieses Dokument nur mithilfe des Textes innerhalb dieses HTML-Tags zu durchsuchen.
Antwort #1
Sie können den $regex-Operator verwenden:
db.collection.find({
"html": {
"$regex": "I am HTML"
}
})
Funktionierendes Beispiel
Antwort #2
Wenn Sie einen Textindex für diese Sammlung haben, können Sie wie folgt suchen:
db.collection.find({
$text: {
$search: "\"I am html\""
}
})
Mit Anführungszeichen können Sie nach einer genauen Phrase suchen.
Sie können auch nach genauen Phrasen suchen, indem Sie sie in Anführungszeichen setzen. Wenn der $Suchbegriff sowohl eine Phrase als auch einzelne Begriffe enthält, werden bei der Textsuche nur Dokumente gefunden, die die Phrase enthalten.
