Se entendi bem, você pode encontrar a resposta da sua pergunta abaixo.
Digamos que você tenha o seguinte documento aninhado.
{ "key1" : "value1",
"key2" : {
"key21" : "value21",
"key22" : "value22"
}
}
Se você pretende fazer consultas nos documentos aninhados, poderá acessar o objeto incorporado usando o seguinte código java.
DBCollection coll = db.getCollection("collectionName");
BasicDBObject query = new BasicDBObject();
query.put("key2.key21", new BasicDBObject("$eq", "value21"));
DBCursor cur = coll.find(query);
Se você pretende extrair o documento incorporado do documento, pode usar Map/Reduce ou Estrutura de agregação.
Ian Daniel ainda é adicionado o código para inserir documentos aninhados que você pediu. Você também pode visitar este página para ver alguns exemplos detalhados.