MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment rechercher des utilisateurs par prénom et nom avec MongoDB ?

Je vois quelques erreurs dans votre code provoquant un résultat indésirable.

  1. Le pipeline d'agrégation accepte un tableau d'opérations de structure d'agrégation. Dans votre cas, il vous manque [] opérateur. Ça devrait être comme

    User.aggregate([{$project...},{$match...}])

  2. Dans l'étape $match, vous utilisez regex, si vous utilisez /../ style de regex, vous n'avez pas besoin de l'entourer de guillemets de chaîne. Ce devrait être /bob j/i

Voici un exemple fini :

User.aggregate([
  {$project: { "name" : { $concat : [ "$firstName", " ", "$lastName" ] } }},
  {$match: {"name": {$regex: /bob j/i}}}
]).exec(function(err, result){
  console.log(result);
});

Vous devriez voir [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] à l'écran.