示例数据
{
"_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 ]}})
这行不通
答案 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