sql >> Database >  >> NoSQL >> MongoDB

Hoe zoek je naar gebruikers op zowel voor- als achternaam met MongoDB?

Ik zie een paar fouten in je code die een ongewenst resultaat veroorzaken.

  1. Aggregatiepijplijn accepteert een reeks aggregatieraamwerkbewerkingen. In jouw geval mis je [] exploitant. Het zou moeten zijn als

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

  2. In $match-fase gebruik je regex, als je /../ . gebruikt stijl van regex, je hoeft het niet om aanhalingstekens te wikkelen. Het moet /bob j/i . zijn

Hier is het voltooide voorbeeld:

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

Je zou [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] moeten zien op het scherm.



  1. MongoDB $ slice (ingesloten array-paging)

  2. Kon geen verbinding maken met Redis om 10.XX.XX.28:6379:onbekende fout - tijdens toegang vanaf Spring Batch of Windows-machine

  3. Migreren van MongoDB naar HBase

  4. Asynchrone Mongoose-callbacks in de verklaring