例如,我有这样的结构:
{
name:{
"en":"london",
"fr":"londres",
"sq":"londra"
},
...
},
{
name:{
"de":"barcelona",
"sv":"barcelone"
},
...
}
...
我想知道如何在这个例子中检索所有包含“lon”的城市,但是没有指定密钥(“de”或“fr”)?
所以,不是这个:
db.cities.find({$or:{"name.en":/lon/,"name.fr":/lon/, ...}})
但是像:
db.cities.find({"name":/lon/}})
-> find in the children of "name, don't care about the key
答案 0 :(得分:0)
要获得此功能,您可以创建一个text index,其中包含所有字段:
db.collection.createIndex({“$ **”:“text”, })
然后在您的查询中使用$search
- more here
db.cities.find( { $text: {
$search: "lon",
$caseSensitive: true,
$diacriticSensitive: true
} } )