sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan søger man efter brugere efter både for- og efternavn med MongoDB?

Jeg ser et par fejl i din kode, der forårsager uønskede resultater.

  1. Aggregationspipeline accepterer række af aggregeringsrammeoperationer. I dit tilfælde mangler du [] operatør. Det burde være ligesom

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

  2. I $match-stadiet bruger du regex, hvis du bruger /../ regex-stil, du behøver ikke at pakke den rundt om anførselstegn. Det skal være /bob j/i

Her er et færdigt eksempel:

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

Du bør se [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] på skærmen.



  1. Ordre og begrænsning resulterer i en forespørgsel med et tilbagekald

  2. Indsæt i mongodb med perl

  3. Mongo DB:Hvordan kopierer man dokumentet fra en samling og tilføjer det som et felt til et relateret dokument fra en anden samling?

  4. MongoDB's count() returnerer forkert 0, hvis der gives en forespørgsel