{
"_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"
}
上記は私のプロジェクト要件のための私のモンゴスキーマモーダルです。私が野菜のみを検索したいときは、野菜の名前を付ける必要があります。野菜と果物の両方を検索すると、トマトとアップルの両方の名前が来るはずです。mongodbの配列でテキスト検索を見つけるには
私はこの
{"array":{$in:[{"title":"Vegetables"},{"title":"Fruits"}]}}
ようですが、タイトルVegetables
なくVegetables-Home-made
を持つ文書のみを与えている"$in"
演算子を使用していました。そのために私は$elemMatch
{"array":{$elemMatch:[{"title":"Vegetables"},{"title":"Fruits"}]}}
を使用しようとしました。しかし、我々はすなわち、elemMatchでVegetables
とFruits
は、それがエラーを与えている倍数を検索したとき、私はつまり、特定のタイトルキーの配列内のテキストを検索します。 、MongoDBの中
{"array":{$text:{:$search:[{"title":"Vegetables"},{"title":"Fruits"}]}}}
正規表現$ regexまたは$ textを使用することができます。これを試してください:{"array":{$ in:{{"title":{$ regex:{/ Vegetables /}}}}} – chirag