2016-05-25 3 views
0

К примеру, у меня есть эта структура:MongoDB, Как запрашивать дочерние объекты в MongoDB без указания ключа?

{ 
    name:{ 
     "en":"london", 
     "fr":"londres", 
     "sq":"londra" 
    }, 
    ... 
}, 
{ 
    name:{ 
     "de":"barcelona", 
     "sv":"barcelone" 
    }, 
    ... 
} 
... 

Я хотел бы знать, как я могу получить в этом Exemple, все города, название которых содержит «LON», но без указания ключа («де» или " фр ")?

Таким образом, не так:

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

, чтобы получить это можно создать text index, которые включают в себя все поля:

db.collection.createIndex ({"$ **": "текст", })

, а затем использовать $search в запросе - more here

db.cities.find({ $text: { 
      $search: "lon", 
      $caseSensitive: true, 
     $diacriticSensitive: true 
    } }) 
+0

Спасибо, но индекс текста работает только с полным стеблях слов ... –

Смежные вопросы