2012-06-05 12 views
5

मैं जावा और मोंगोडीबी के साथ मोंगो-जैक्सन-रैपर का उपयोग कर रहा हूं। मुझे मेरा एक क्षेत्र (_id फ़ील्ड नहीं) पूछताछ करके एक ऑब्जेक्ट मिलता है, और फिर मुझे _id फ़ील्ड मान जानने की आवश्यकता है, चाहे नेट परिणाम अपडेट या डालने वाला था। हालांकि, मुझे अपवाद मिलता है:जावा से mongodb upsert: मौजूदा वस्तु का _id कैसे प्राप्त करें?

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

अपवाद रैपर से आता है, मोंगोडीबी चालक स्वयं नहीं।

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

क्या (यदि कुछ भी) ऐसा करने का सही तरीका है?

उत्तर

0

आप आप देख सकते हैं JavaDoc

इस कोड चाल करना चाहिए findAndModify उपयोग करने की आवश्यकता है और returnNew सेट सच

लिए लेकिन मैं इसे परीक्षण नहीं किया।

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

संबंधित मुद्दे