MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann man mit MongoDB nach Benutzern mit Vor- und Nachnamen suchen?

Ich sehe einige Fehler in Ihrem Code, die zu unerwünschten Ergebnissen führen.

  1. Die Aggregationspipeline akzeptiert eine Reihe von Aggregationsframework-Vorgängen. In Ihrem Fall fehlt [] Operator. Es sollte so aussehen

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

  2. In der $match-Phase verwenden Sie Regex, wenn Sie /../ verwenden Stil von Regex, müssen Sie es nicht um String-Anführungszeichen setzen. Es sollte /bob j/i sein

Hier ist ein fertiges Beispiel:

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

Sie sollten [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] sehen auf dem Bildschirm.