sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur söker man efter användare med både för- och efternamn med MongoDB?

Jag ser ett par fel i din kod som orsakar oönskade resultat.

  1. Aggregationspipeline accepterar en rad aggregeringsramverksoperationer. I ditt fall saknar du [] operatör. Det borde vara som

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

  2. I $match-stadiet använder du regex, om du använder /../ stil av regex, du behöver inte linda den runt citattecken. Det ska vara /bob j/i

Här är ett färdigt exempel:

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. 'autoIndexID' är inte ett giltigt insamlingsalternativ - mongoDB

  2. Vad är fördelen med att använda Gorilla sessions anpassad backend?

  3. Hantera flera databasteknologier med ClusterControl

  4. Anslut till MongoDB Atlas Cluster db med react-native app