{
"_id":objectId(23651478),
"name":"Tomatos"
"array":[
{"title":"Vegetables"}
]
"description":"Vegitables are good to health"
},
{
"_id":objectId(45761244),
"name":"Apples"
"array":[
{"title":"Fruits"}
]
"description":"Fruits are good to health, vegitables are also good to health"
},
{
"_id":objectId(45761244),
"name":"Apples"
"array":[
{"title":"Vegetables-home-made"}
]
"description":"Fruits are good to health, vegitables are also good to health"
}
以上是我的项目要求的mongo架构模式。当我只想搜寻蔬菜时,蔬菜名称应该来。如果我同时寻找蔬菜和水果,那么两个名字,即番茄和苹果都应该来。
我像这样使用"$in"
运算符
{"array":{$in:[{"title":"Vegetables"},{"title":"Fruits"}]}}
它仅提供标题为Vegetables
而非Vegetables-Home-made
的文档。为此,我尝试使用$elemMatch
{"array":{$elemMatch:[{"title":"Vegetables"},{"title":"Fruits"}]}}
但是当我们在elemMatch中搜索多个ie。,Vegetables
和Fruits
时,它会给出一个错误,我想在数组中搜索特定的标题键,即。,
{"array":{$text:{:$search:[{"title":"Vegetables"},{"title":"Fruits"}]}}}
答案 0 :(得分:2)
这是你想要的:
您可以在$ in运算符中使用正则表达式,如下所示:
{array: { $elemMatch: { title: { $in: [/Vegetables/, /Fruits/] }}}}
答案 1 :(得分:0)
MongoDB中的常规文本搜索如下:
db.collectionName.find( { $text: { $search: "Vegetables" } } )
请检查您运行的搜索文字蔬菜包含拼写错误:
{"array":{$text:{:$search:[{"title":"Vegitables"},{"title":"Fruits"}]}}}