按文本搜索,使用 mongoDB 聚合
Searching by text, using mongoDB aggregation
我正在尝试对 MongoDB Compass 中名为 DAFacility
的集合进行文本搜索:
_id:62170597b3fa8994a0d9a0c8
author:"User"
organizationName:"TSTT"
eventName:"Facility Assessment After Disaster"
eventDate:2022-02-01T00:00:00.000+00:00
area:"Siparia"
disasterNature:"Earthquake"
threatLevel:"High"
surroundingDamage:"Cracked Foundations and Roads"
facilityName:"Point Lisas Main Facility"
facLocation:Array
facStatus:"Operable"
operEqu:23
inoperEqu:7
facilityDamage:"Cracked Walls and Floors"
facImage:Array
__v:0
我正在尝试搜索字段 facilityDamage
,我可以在其中搜索整个数据条目中的一个词(例如,搜索词 "Walls"
并显示整个条目)
我正在尝试在 mongoDB 数据聚合选项中执行它,模板为:
[
{
'$search': {
'index': 'string',
'text': {
'query': 'string',
'path': 'string'
}
}
}
]
我已经阅读了文档,它让我对索引、查询和路径中的内容更加困惑。
你们能告诉我什么变量进入索引、查询和路径吗?
每当我在节点中使用它时,它 returns 一个空数组:
exports.DAEquipment_damage_search = (req, res) => {
DAEquipment.aggregate([
[
{
'$match': {
'$or': [
{'facilityDamage':{ '$regex':'.*' + req.body.facilityDamage + '.*','$options': 'i' } }
]
}
}
}
]
]).then((DAEquipment) => {
res.send(DAEquipment);
console.log(DAEquipment);
})
.catch((e) => {
res.send(e);
});
};
await DAFacility.aggregate([
{
$match: {
$or: [
{"facilityDamage":{ $regex:'.*' + searchText + '.*',$options: 'i' } },
]
}
},
])
希望对您有所帮助
我正在尝试对 MongoDB Compass 中名为 DAFacility
的集合进行文本搜索:
_id:62170597b3fa8994a0d9a0c8
author:"User"
organizationName:"TSTT"
eventName:"Facility Assessment After Disaster"
eventDate:2022-02-01T00:00:00.000+00:00
area:"Siparia"
disasterNature:"Earthquake"
threatLevel:"High"
surroundingDamage:"Cracked Foundations and Roads"
facilityName:"Point Lisas Main Facility"
facLocation:Array
facStatus:"Operable"
operEqu:23
inoperEqu:7
facilityDamage:"Cracked Walls and Floors"
facImage:Array
__v:0
我正在尝试搜索字段 facilityDamage
,我可以在其中搜索整个数据条目中的一个词(例如,搜索词 "Walls"
并显示整个条目)
我正在尝试在 mongoDB 数据聚合选项中执行它,模板为:
[
{
'$search': {
'index': 'string',
'text': {
'query': 'string',
'path': 'string'
}
}
}
]
我已经阅读了文档,它让我对索引、查询和路径中的内容更加困惑。 你们能告诉我什么变量进入索引、查询和路径吗?
每当我在节点中使用它时,它 returns 一个空数组:
exports.DAEquipment_damage_search = (req, res) => {
DAEquipment.aggregate([
[
{
'$match': {
'$or': [
{'facilityDamage':{ '$regex':'.*' + req.body.facilityDamage + '.*','$options': 'i' } }
]
}
}
}
]
]).then((DAEquipment) => {
res.send(DAEquipment);
console.log(DAEquipment);
})
.catch((e) => {
res.send(e);
});
};
await DAFacility.aggregate([
{
$match: {
$or: [
{"facilityDamage":{ $regex:'.*' + searchText + '.*',$options: 'i' } },
]
}
},
])
希望对您有所帮助