2012-06-05 15 views
5

Sto usando il mongo-jackson-wrapper con java e MongoDB. Trovo un oggetto interrogando un mio campo (non il campo _id), e quindi ho bisogno di conoscere il valore del campo _id, se il risultato netto era un aggiornamento o un inserto. Tuttavia, ottengo un'eccezione:mongodb upsert from java: come ottenere _id di un oggetto esistente?

com.mongodb.MongoException: No objects to return 
    at net.vz.mongodb.jackson.WriteResult.getSavedId(WriteResult.java:97) 

L'eccezione viene dal wrapper, non dal driver MongoDB stesso.

WriteResult<EntityDocument, String> wr 
    = coll.update(DBQuery.is("corefEntityId", corefEntityId), up, true, false); 

cosa (se non altro) è il modo giusto per fare questo?

risposta

0

è necessario utilizzare findAndModify e impostare returnNew-vero

È possibile visualizzare il JavaDoc

Questo codice dovrebbe fare il trucco, ma non ho provato.

coll.findAndModify(DBQuery.is("corefEntityId", corefEntityId), null, null, false, up, true, false);

Problemi correlati