2016-05-25 6 views
0

Zum Beispiel habe ich diese Struktur:MongoDB, Wie fragt man untergeordnete Objekte in MongoDB ab, ohne den Schlüssel anzugeben?

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

Ich mag würde wissen, wie kann ich in diesem exemple abrufen, alle Städte, dessen Namen enthalten „lon“, aber ohne den Schlüssel zu Angabe („de“ oder " fr ")?

also nicht so:

db.cities.find({$or:{"name.en":/lon/,"name.fr":/lon/, ...}}) 

Aber so etwas wie:

db.cities.find({"name":/lon/}}) 
-> find in the children of "name, don't care about the key 

Antwort

0

dies erhalten Sie eine text index schaffen könnte, die alle Felder umfassen:

db.collection.createIndex ({"$ **": "Text", })

und dann $search in Ihrer Abfrage verwenden - more here

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

Danke, aber Textindex funktioniert nur mit ganzen Wörtern stammten ... –

Verwandte Themen