MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да търсите потребители както по име, така и по фамилия с MongoDB?

Виждам няколко грешки в кода ви, причиняващи нежелан резултат.

  1. Конвейерът за агрегиране приема масив от операции на рамката за агрегиране. Във вашия случай липсва [] оператор. Трябва да е като

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

  2. В етапа на $match вие използвате регулярен израз, ако използвате /../ стил на регулярен израз, не е необходимо да го обвивате около низови кавички. Трябва да е /bob j/i

Ето готовия пример:

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

Трябва да видите [ { _id: 574c3e20be214bd4078a9149, name: 'Bob Jerry' } ] на екрана.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Могат ли MongoDB и неговите драйвери да запазят подреждането на елементите на документа

  2. MongoDB:Ефективен дизайн на схема с вградени документи

  3. Вмъкнете данни във вътрешния масив в MongoDB

  4. Как да добавите автоматично увеличение към съществуваща колекция в mongodb/node.js?

  5. Мангуста:дълбока популация (населете населено поле)