Sie können Ihrer Mongoose-Schemadefinition einen Textindex hinzufügen, mit dem Sie $text
verwenden können Operator in Ihrem find
Abfragen, um alle im Textindex enthaltenen Felder zu durchsuchen.
So erstellen Sie einen Index zur Unterstützung der Textsuche nach beispielsweise name
und profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Oder wenn Sie alle Zeichenfolgenfelder in den Index aufnehmen möchten, verwenden Sie den '$**'
Platzhalter:
schema.index({'$**': 'text'});
Dies würde es Ihnen ermöglichen, eine ausgelagerte Textsuchabfrage durchzuführen wie:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Weitere Einzelheiten finden Sie in der vollständigen Dokumentation zu MongoDB-Textindizes.