sql >> Databáze >  >> NoSQL >> MongoDB

Jak vyhledávat uživatele podle jména a příjmení pomocí MongoDB?

Vidím ve vašem kódu několik chyb, které způsobují nežádoucí výsledek.

  1. Agregační kanál přijímá řadu operací agregačního rámce. Ve vašem případě chybí [] operátor. Mělo by to být jako

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

  2. Ve fázi $match používáte regulární výraz, pokud používáte /../ stylu regulárního výrazu, nemusíte jej obalovat řetězovými uvozovkami. Mělo by to být /bob j/i

Zde je hotový příklad:

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

Měli byste vidět [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] na obrazovce.



  1. Odeberte _Id z mongoose Aggregate response

  2. Kde je datový adresář v Redis?

  3. Navrhování vztahů Many-to-Many v MongoDB (místo relačních tabulek)

  4. Obrázek vrácený z REST API se vždy zobrazuje jako poškozený