2013-07-26 5 views
0

Я сохраняю свои классы Python в JSON и записываю их в MongoDB. Я использую JSON Encoder, который был представлен here. Это приводит к небольшой сложной структуре JSON, которая не следует за простым «строковым» ключом/значениями во всех обучающих программах MongoDB. Вот отрывок из класса, написанного в формате JSON:Как запросить сложные структуры в MongoDB?

{ 
    "_id" : ObjectId("51f2397c86a49a5e6dec4633"), 
    "__module__" : "experiment.experimentmanager", 
    "experiments" : { 
     "FOO" : [ 
      { 
       "__module__" : "experiment.experiment", 
       "enable_routing_table_trace" : false, 
       "__class__" : "Experiment", 
       "scenario_name" : "foobar", 
       "enable_network_visualize" : false 
      },  
} 

мне интересно, как я могу проверить, если есть ключ «FOO» в экспериментах с использованием MongoDBs найти? Заранее спасибо!

ответ

2

Проверить, существует ли поле use$exists operator.

Для доступа к сложным структурам используйте точечную нотацию. Например:

db.inventory.find({ "experiments.FOO": { $exists: true} }) 
0

Этот запрос должен работать:

db.collection.find({ 
    "experiments.FOO": { 
     $exists:true 
    } 
}); 
Смежные вопросы