Maison >interface Web >js tutoriel >Tutoriel sur la façon d'implémenter une requête floue sur MongoDB à l'aide de js

Tutoriel sur la façon d'implémenter une requête floue sur MongoDB à l'aide de js

零下一度
零下一度original
2018-05-25 09:20:244861parcourir

La requête floue est l'une des opérations de base de la base de données. L'article suivant présente principalement un tutoriel sur la façon d'utiliser Node.js pour implémenter une requête floue sur la base de données MongoDB. L'article donne une introduction détaillée et un exemple de code, qui a une certaine valeur de référence pour tous les amis qui en ont besoin peuvent y jeter un œil ci-dessous.

Préface

La requête floue est l'une des opérations de base de la base de données. Elle vérifie si une chaîne donnée correspond. Correspond au modèle spécifié. Si les caractères correspondent complètement, cela peut être exprimé par le signe = égal. Si les caractères correspondent partiellement, cela peut être considéré comme une requête floue. Dans les données relationnelles, utilisez une syntaxe telle que « %fens% » via SQL. Alors, comment devrions-nous obtenir l'effet de requête floue dans MongoDB.

Répertoire

  • requête floue mongodb

  • nodejs via mangouste Fuzzy requête

1. Requête floue Mongodb

Nous ouvrons mongodb et testons avec le champ de texte du nom.

Requête exacte

Quand {'name':'Future Police'}, correspond exactement à un enregistrement.

db.movies.find({'name':'未来警察'})

Requête floue

{'name':/future/}, correspondant à plusieurs enregistrements.

db.movies.find({'name':/未来/})

La requête floue de MongoDB est en fait un type de requête régulière.

Remarque : dans les données relationnelles, il existe un mot-clé distinct comme pour la requête floue. Si vous n'utilisez pas like, vous pouvez également utiliser une requête standard dans les données relationnelles.

Introduction officielle à MongoDB : docs.mongodb.org/manual/reference/operator/regex/

Exemple officiel :

db.collection.find( { field: /acme.*corp/i } );
db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );

2. Requête floue Nodejs via mangouste

L'effet recherché :

Allons expliquez comment utiliser la mangouste pour effectuer une requête floue.

L'utilisation de Mongoose pour accéder à Mongodb a été abordée dans l'article Utiliser Mongoose pour insérer directement des données JSON ou mettre à jour dans MongoDB.

Nous modélisons le film et construisons la couche dao.

Interroger tous les films

MovieDAO.prototype.findByName = function(query, callback) {
 Movie.findOne(query, function(err, obj){
 callback(err, obj);
 });
};

Vous pouvez interroger en passant la requêteobjet.

Ensuite, construisez l'objet de requête

//代码片断
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});
 });
}

Veuillez noter : Nous venons d'analyser la requête floue de MongoDB via Expression régulière est implémenté, correspondant à mongodb, vous pouvez utiliser directement la barre oblique '/../'.

Mais dans nodejs, vous devez utiliser RegExp pour créer un objet d'expression régulière.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn