如何查询MongoDB中的复杂结构?

时间:2013-07-26 12:23:47

标签: mongodb

我将我的Python类保存到JSON并将它们写入MongoDB。我正在使用JSON编码器,它已经呈现here。这导致了一个稍微复杂的JSON结构,它不遵循所有MongoDB教程中的简单“字符串”键/值。以下是写入JSON的类的摘录:

{
    "_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
            },    
}

我想知道如何在使用MongoDBs找到的实验中检查是否存在关键“FOO”?提前谢谢!

2 个答案:

答案 0 :(得分:2)

检查字段是否存在use$exists operator

要访问复杂结构,请使用点表示法。例如:

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

答案 1 :(得分:0)

此查询应该有效:

db.collection.find({
    "experiments.FOO": {
        $exists:true
    }
});