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 に答える