我有一个类似“美国”的搜索文本。我有以下蒙戈文件:
[
{
"name": "Car Loan",
"details": [
{
"Bank": "America First",
"Location": "USA"
}
}
]我使用Mongoose,我可以使用以下方法找到一个类似于"name“的模式:
.find({“名称”:{ "$regex":req.query.searchText,"$options":"i“})
是否有类似的方法来搜索像"details“这样的混合模式中的文本?
发布于 2017-03-01 01:39:40
可以使用$or指定所有字段:
db.text.find({
$or: [
{ "details.Bank": { "$regex": "America", "$options": "i" } },
{ "details.Location": { "$regex": "America", "$options": "i" } }
]
})或者您可以在内置的不敏感特性中使用文本搜索特性,您必须在数组字段项上创建文本索引:
db.text.createIndex({
"details.Bank": "text",
"details.Location": "text"
})并在$search中找到:
db.text.find({
$text: {
$search: "usa"
}
})https://stackoverflow.com/questions/42521376
复制相似问题