sql >> Database >  >> NoSQL >> MongoDB

De beste manier om een ​​volledige tekstzoekopdracht uit te voeren in MongoDB en Mongoose

U kunt een tekstindex toevoegen aan uw Mongoose-schemadefinitie waarmee u de $text . kunt gebruiken operator in uw find zoekopdrachten om alle velden in de tekstindex te doorzoeken.

Om een ​​index te maken ter ondersteuning van het zoeken naar tekst op bijvoorbeeld name en profile.something :

var schema = new Schema({
  name: String,
  email: String,
  profile: {
    something: String,
    somethingElse: String
  }
});
schema.index({name: 'text', 'profile.something': 'text'});

Of als u alle stringvelden in de index wilt opnemen, gebruikt u de '$**' wildcard:

schema.index({'$**': 'text'});

Dit zou u in staat stellen om een ​​zoekopdracht met paginatekst uit te voeren zoals:

MyModel.find({$text: {$search: searchString}})
       .skip(20)
       .limit(10)
       .exec(function(err, docs) { ... });

Lees voor meer details de volledige MongoDB Text Indexes-documentatie.




  1. Geeft Stackexchange.Redis' fire and forget garanties voor levering?

  2. Hoe gebruikt StackExchange.Redis meerdere eindpunten en verbindingen?

  3. Krijg een lijst met indexen in MongoDB

  4. Een Mongo opgeslagen datum terug converteren naar milliseconden sinds Unix-tijdperk wanneer geladen?