MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como pesquisar usuários por nome e sobrenome com o MongoDB?


Vejo alguns erros no seu código causando resultados indesejados.

  1. O pipeline de agregação aceita uma matriz de operações de estrutura de agregação. No seu caso, está faltando [] operador. Deve ser como

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

  2. No estágio $match você está usando regex, se estiver usando /../ estilo de regex, você não precisa envolvê-lo em aspas de string. Deve ser /bob j/i

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

Você deverá ver [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] na tela.