猫鼬用字符串数组查找全名

时间:2018-09-03 15:55:06

标签: node.js mongodb mongoose mongodb-query

示例数据

 {
    "_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 :(得分:0)

您可能可以将输入内容(例如nico zu)分为2个元素-> [nico,zu]并只需创建这种正则表达式:

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

您需要做的就是用(。*)包围输入的单词(例如noco,zu)

答案 1 :(得分:0)

这应该有效:

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

其中searchString将是您的示例值之一:

nico zu
nicolas zuleta
nicolas segundo zuleta
zuleta veliz
zuleta nicolas