1

我是 MongoDB 的新手。我正在尝试访问 mongodb 中的嵌套文档。我的示例文档是

{
    "Advertisement" : {
        "html" : "zxcxz"
    },
    "Notification" : {
        "date_from" : ISODate("2013-06-30T18:30:00Z"),
        "date_too" : ISODate("2013-07-16T18:30:00Z"),
        "description" : "vcvc",
        "url" : "vcvc"
    },
    "_id" : ObjectId("51e4f10ee4b08e0a6ebcbe46"),
    "group_name" : "sumit",
    "target_audience" : {
        "gender" : "male",
        "section" : "xyz",
        "catagory" : "--Computer--",
        "location" : {
            "country" : "--Country--",
            "state" : "--State--",
            "city" : "--City--"
        }
    }
}

我正在尝试从 target_audience 获取性别。我的java代码是

DBCursor f=con.coll.find(query);
while(f.hasNext())
{
    f.next();
    gender=(String) f.curr().get("target_audience.gender");
}

但它返回null。

4

1 回答 1

3

DBCursor.next()和的结果DBCursor.curr()BasicDBObject. 对于带有嵌入文档的键,BasicDBObject.get(key)返回一个BasicDBObject

DBCursor f=con.coll.find(query);
while(f.hasNext())
{
    BasicDBObject result = (BasicDBObject) f.next();
    BasicDBObject target = (BasicDBObject) result.get("target_audience");
    gender = (String) target.get("gender");
}
于 2013-07-22T08:36:20.420 回答