Fuzzy-Abfragen sind eine der Grundoperationen der Datenbank. Der folgende Artikel stellt hauptsächlich ein Tutorial zur Verwendung von Node.js zum Implementieren von Fuzzy-Abfragen in der MongoDB-Datenbank vor. Der Artikel enthält eine detaillierte Einführung und einen Beispielcode, der für alle Freunde, die ihn benötigen, einen gewissen Referenzwert hat und einen Blick darauf werfen kann.
Vorwort
Fuzzy-Abfrage ist eine der Grundoperationen der Datenbank. Sie prüft, ob eine bestimmte Zeichenfolge übereinstimmt Entspricht dem angegebenen Muster. Wenn die Zeichen vollständig übereinstimmen, kann dies durch = Gleichheitszeichen ausgedrückt werden. Wenn die Zeichen teilweise übereinstimmen, kann dies als Fuzzy-Abfrage betrachtet werden. Verwenden Sie in relationalen Daten eine Syntax wie „%fens%“ über SQL. Wie sollen wir also den Effekt einer Fuzzy-Abfrage in Mongodb erzielen?
Verzeichnis
Mongodb-Fuzzy-Abfrage
nodejs über Mungo Fuzzy Abfrage
1. Mongodb-Fuzzy-Abfrage
Wir öffnen mongodb und testen mit dem Namenstextfeld.
Genaue Abfrage
Bei {'name':'Future Police'} wird ein exakter Datensatz abgeglichen.
db.movies.find({'name':'未来警察'})
Fuzzy-Abfrage
{'name':/future/}, passend zu mehreren Datensätzen.
db.movies.find({'name':/未来/})
Die Fuzzy-Abfrage von MongoDB ist eigentlich eine Art reguläre Abfrage.
Hinweis: In relationalen Daten gibt es ein separates Schlüsselwort „like“ für Fuzzy-Abfragen. Wenn Sie „like“ nicht verwenden, können Sie in relationalen Daten auch eine reguläre Abfrage verwenden.
Offizielle MongoDB-Einführung: docs.mongodb.org/manual/reference/operator/regex/
Offizielles Beispiel:
db.collection.find( { field: /acme.*corp/i } ); db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );
2. Nodejs Fuzzy-Abfrage durch Mungo
Der gewünschte Effekt:
Lass uns reden Informationen zur Verwendung von Mungo zur Durchführung von Fuzzy-Abfragen.
Die Verwendung von Mongoose für den Zugriff auf MongoDB wurde im Artikel „Mongoose zum direkten Einfügen von JSON-Daten oder zum Update in MongoDB verwenden“ erläutert.
Wir modellieren den Film und konstruieren die Dao-Ebene.
Alle Filme abfragen
MovieDAO.prototype.findByName = function(query, callback) { Movie.findOne(query, function(err, obj){ callback(err, obj); }); };
Sie können eine Abfrage durchführen, indem Sie das AbfrageObjekt übergeben.
Als nächstes erstellen Sie das Abfrageobjekt
//代码片断 exports.movie = function(req, res) { var query={}; if(req.query.m2) { query['name']=new RegExp(req.query.m2);//模糊查询参数 } Movie.findByName (query,function(err, list){ return res.render('admin/movie', {movieList:list}); }); }
Bitte beachten Sie: Gerade haben wir die Fuzzy-Abfrage von MongoDB durch Regulären Ausdruck analysiert ist implementiert und entspricht Mongodb. Sie können den Schrägstrich '/../' direkt verwenden.
Aber in NodeJS müssen Sie RegExp verwenden, um ein reguläres Ausdrucksobjekt zu erstellen.
Das obige ist der detaillierte Inhalt vonTutorial zur Implementierung von Fuzzy-Abfragen in MongoDB mithilfe von js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!