Mongoose Найти полное имя с массивом строк - PullRequest
0 голосов
/ 03 сентября 2018

Пример данных

 {
    "_id" : ObjectId("5b77a707ee4b1c14fcf43ff8"),
    "nombre" : "NICOLAS SEGUNDO ZULETA VELIZ",
    "nacimiento" : "10-09-1937",
    "difuncion" : "10-01-1995",
    "idPropiedad" : ObjectId("5b77a707ee4b1c14fcf43ff7"),
    "__v" : 0
}

Я пытаюсь выполнить поиск, при котором следующий поисковый запрос будет работать со свойством Nombre

nico zu
nicolas zuleta
nicolas segundo zuleta
zuleta veliz
zuleta nicolas

Я пробовал несколько вещей, таких как

db.getCollection('difuntos').find({nombre: {$regex:"nico zu","$options": "i"}})
db.getCollection('difuntos').find({nombre: {$in : [ /nicolas/i,/zu/i ]}})

это не сработает

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Это должно работать:

db.difuntos.find({"nombre": { $regex: searchString.split(' ').join("|"), $options: "i" }})

где searchString будет одним из ваших примеров значений:

nico zu
nicolas zuleta
nicolas segundo zuleta
zuleta veliz
zuleta nicolas
0 голосов
/ 03 сентября 2018

Вы, вероятно, можете разделить ваш ввод (например, nico zu) на 2 элемента -> [nico, zu] и просто создать регулярное выражение такого рода:

db.getCollection('difuntos').find({nombre: {$regex:".*nico.*zu.*","$options": "i"}})

Все, что вам нужно сделать, это окружить введенные слова (например, noco, zu) с помощью (. *)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...