我正在嘗試為我的前端創建一個自動完成 UI。因此,我正在運行以下查詢:
return Product.find({ 'data.text': { '$regex': `${searchTerm}`, '$options': 'i' } }).limit(200);
不幸的是,上面的查詢太慢了。
在四處挖掘之后,我被建議使用 MongoDb Atlas Search Index 來加快我的查詢速度。
我的產品架構的形式是
{
...,
data: Object //Can contain any key value pair one of which is text as used above
}
創建常規的 Atlas 搜索索引非常簡單,例如
{
"mappings": {
"dynamic": false,
"fields":[
"name":{
type:"string"
}
]
}
}
但是如何為上述用例創建嵌套搜索索引。我只想'data.text'索引
uj5u.com熱心網友回復:
您可以使用以下方法在嵌套欄位上創建索引:
db.collection('...').ensureIndex("data.text": 1)
或者
{
"mappings": {
"dynamic": false,
"fields":[
"data.text":{
type:"string"
}
]
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/522417.html
下一篇:生成字串的多個可能字謎之一
