簡體   English   中英

如何推進 mongoose 搜索?

[英]How to advance mongoose search?

大家好,過去 16 小時我正在嘗試使用 mongoose 實現此搜索,但不幸的是,無論我嘗試什么都沒有用。 希望這里有人能幫助我。

所以我有架構

    const propertySchema = new mongoose.Schema({

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

  const Property = mongoose.model('property',propertySchema);
  exports.module = Property

這是我的收藏(演示)數據

    {
    "city":"Prague",
    "district":"district 1 ",
    "address":address 1"
},
{
    "city":"Prague",
    "district":"district 1 ",
    "address":address 1"
},
{
    "city":"Ostrava",
    "district":"district 2 ",
    "address":address 2"
},
{
    "city":"Ostrava",
    "district":"district 2",
    "address":address 2"
},                                                                          
{
    "city":"Brno",
    "district":"district 3",
    "address":address 1" //Let`s pretend somehow this address in Bruno exists in Prague too 
},

我現在想要的是當我在搜索“布拉格”中寫入以獲得結果時

Prague

此外,例如當我在搜索“地址 1”中編寫以獲取結果時

地址 1, 區 1, 布拉格 地址 1, 區 3, 布爾諾

我應該看起來像https://www.zillow.com搜索

到目前為止,我想出了很多想法,這是最后一個(沒有用,但我仍然想與您分享,也許通過一些修改可以做到這一點)

  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'}}]})

在這種類型的場景中,您希望將搜索輸入與任何字段匹配,您必須使用$or聚合而不是$and 因為您希望將輸入匹配為城市或地區或地址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM