Como atualizo campos de documentos no mongo db usando o driver java?

Referências:

http://www.mongodb.org/display/DOCS/Java+Tutorial

Ainda bem novo no mongo db, mas estou tentando atualizar parte de um documento existente dentro de uma coleção ... infelizmente, o link acima não possui um exemplo de atualização.

Essencialmente, eu só quero ser capaz de:

Adicionar novos campos a um documentoAtualizar campos existentes de um documento para um novo valor

Aqui está o meu código (Grails + Groovy + Java + MongoDB + o driver java):

def shape = mongo.shapes.findOne(new BasicDBObject("data", "http://www.foo.com")); // get the document
mongo.shapes.update(new BasicDBObject("_id", shape._id), new BasicDBObject("isProcessed", 0));  // add a new "isProcessed" field set to 0
mongo.shapes.update(new BasicDBObject("_id", shape._id), new BasicDBObject("data", "http://www.bar.com"));

Isso praticamente derruba todo o objeto ... Eu posso tentar apenas modificar o objeto de forma original e executar a atualização. Mas até então,alguém tem experiência em atualizar apenas campos individuais (em vez de todo o documento)?

EDITAR:

Eu apenas tentei e consegui atualizar com êxito enviando o objeto inteiro com campos novos e / ou atualizados e que funciona. Gostaria de saber se o driver é inteligente o suficiente para atualizar apenas o menor subconjunto de alterações ou se está apenas atualizando cegamente a coisa toda? (No caso abaixo, está apenas atualizando o campo foo através do fio ou todo o documento de forma?)

Código:

def shape = mongo.shapes.findOne(); // get the first shape to use as a base
shape.removeField("_id");  // remove the id field
shape.put("foo","bar");  // add a new field "foo"
mongo.shapes.insert(shape);  // insert the new shape
def shape2 = mongo.shapes.findOne(new BasicDBObject("foo", "bar"));  // get the newly inserted shape (and more importantly, it's id)
shape2.put("foo", "bat");  // update the "foo" field to a new value
mongo.shapes.update(new BasicDBObject("_id", shape2._id), shape2);  // update the existing document in mongo

questionAnswers(6)

yourAnswerToTheQuestion