6
votes

Comment effectuer une requête de mots clés dans mongodb

Ici, j'ai une collection de livres:

 Book Id:001
 Book Name:C# step by step
 Book Description:Programming book on C#

 Book Id:002
 Book Name:Head First Java
 Book Description:Programming Book on Java

 Book Id:003
 Book Name:Steve Jobs
 Book Description:biography of Jobs


0 commentaires

3 Réponses :


2
votes

Vous pouvez utiliser une expression régulière dans le sélecteur de requête d'un Rechercher pour le faire: xxx


0 commentaires

4
votes

La documentation comporte un chapitre sur Recherche complète du texte à Mongo qui recommande de diviser chaque chaîne en une éventail de mots individuels, de sorte que vous puissiez l'indexer pour une recherche plus rapide.

db.collection.find( {description: { $regex: "Programming"} } );


5 commentaires

Merci pour vous de répondre, mais puis-je faire la requête pour soutenir l'insensible de cas? Parce que j'ai trouvé que Mongodb traite le mot-clé "bon" et "bon" différemment.


Lorsque vous formez les documents standardisez le texte à tous les minuscules


Lorsque vous utilisez l'approche d'expression régulière, vous pouvez utiliser l'option "I" pour "insensible": db.collection.find ({Description: {$ regex: "Programmation", $ options: "i"} . Lorsque vous utilisez l'approche de balises, vous devez générer les balises en minuscule et convertir également l'entrée d'utilisateur à votre requête de recherche en minuscule.


Si j'ai un tableau, je veux rechercher avec ["programmation", "Steve"] cela fonctionnera-t-il toujours?


@Nathanieldsouza Consultez le $ in opérateur qui retournera Documents où soit Word est dans le tableau. Si vous voulez ceux où les deux sont dans la matrice, vous devez utiliser $ et . Mais notez également que c'est une très vieille réponse. La recherche de texte intégral à MongoDB a fait des avancées considérables au cours des dernières années.



0
votes

Il existe de nombreuses façons de trouver avec le mot-clé à MongoDB, parmi lesquels je voudrais Rechercher .

  1. créer d'index pour Nom du livre et Description du livre

    Vous devez créer une index pour Nom du livre et Book Description avec Texte EX db.books.createindex ({BookName: "Texte", Bookdescription: "Texte"})

  2. interroge maintenant vos documents simplement par db.books.find ({$ Texte: {$ Recherche: "Programmation"}})

    Cela pourrait vous aider à trouver tous les documents pertinents, qui contiennent la programmation mot clé de Nom du livre et Description du livre . .


0 commentaires