J'espère que quelqu'un a une réponse à ma question.
J'essaie de rechercher la requête p>
Cependant, cliquez avec le texte d'entrée ou non, Il doit renvoyer des résultats (sans texte d'entrée renvoyera tous les matrices comme sans étage de match et avec le texte d'entrée renvoie des tableaux de correspondance). P>
{$ Match: {$ Texte: {$ Recherche: "bla"}} p> blockQuote>
- S'il n'y a pas de texte d'entrée li> ol>
{$ match: ""} p> blockQquote>
Erreur de texte d'entrée vide "Erreur: le filtre de correspondance doit être une expression dans un objet" p>
Je veux dire comme la manière suivante, p>
xxx Pré> qui retourne "Erreur: le filtre de correspondance doit être une expression dans un objet" p> p>
4 Réponses :
Il devrait être p>
Comme l'erreur dit $ Match nécessite un objet. P> sinon si (entrée == "")
{mymatch = {}} code> p>
Construisez votre requête conditionnelle, le match ne doit être là que si l'utilisateur a ajouté un texte dans la recherche. P>
Vous pouvez écrire plus de code générique. Commençons par votre code et voyons ce que nous pouvons modifier de cette manière, vous avez défini votre pipeline d'agriculture lorsque vous souhaitez faire plus de fonctionnement. P> P>
var myMatch = {} if(input == "bla"){ myMatch["$text"]={}; myMatch["$text"]["$search"]="bla"; } db.collection.aggregate([ { "$match": myMatch} ]) $match require {} Object if your condition is true make you pipeline $match object other wise {} object pass not any error