Javascript 如何推进猫鼬搜索?

Javascript 如何推进猫鼬搜索?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,大家好,过去16个小时我一直在尝试用猫鼬来实现这个搜索,但不幸的是,无论我尝试什么都没有成功。 希望这里有人能帮助我 所以我有了模式 const propertySchema = new mongoose.Schema({ city:{ type:String }, district:{ type:String }, address:{ type:String } }); const

大家好,过去16个小时我一直在尝试用猫鼬来实现这个搜索,但不幸的是,无论我尝试什么都没有成功。 希望这里有人能帮助我

所以我有了模式

    const propertySchema = new mongoose.Schema({

    city:{
        type:String
    },
    district:{
        type:String
    },
    address:{
        type:String
    }
});

  const Property = mongoose.model('property',propertySchema);
  exports.module = Property
这是我收集的(演示)数据

我现在想要的是当我在搜索“布拉格”中写入以获得结果时

Prague
同样,当我在搜索“地址1”中写入示例以获得结果时

Prague
布拉格1区1号地址 布尔诺3区1号地址

我应该看起来像搜索

到目前为止,我提出了很多想法,这是最后一个(虽然没有成功,但我还是想与大家分享,也许可以做一些修改)


在这种类型的场景中,您希望将搜索输入与任何字段相匹配,您必须将
$或
聚合而不是
$和
。因为您希望将输入匹配为城市、地区或地址。

使用排序规则可能比不区分大小写的正则表达式快几个数量级。
  const all = await Property.find({$and:[{city:{$regex: req.body.tag, $options: 'i'}},{address:{$regex: req.body.tag, $options: 'i'}},{district:{$regex: req.body.tag, $options: 'i'}}]})