मैं एक जावा ऐप पर काम कर रहा हूं जो मोंगोडीबी को स्टोरेज के रूप में उपयोग करता है, हालांकि मैंने एक समस्या में भाग लिया है। जब कोई उपयोगकर्ता मेरे ऐप में कोई टिप्पणी जोड़ता है, तो यह दस्तावेज़ को संग्रह संग्रह में जोड़ता है, फिर सांख्यिकीय डेटा के लिए अपरिवर्तित करता है। हालांकि, अपरर्ट केवल पहली बार जोड़ता है (अद्यतन के बाद कोई कॉल नहीं या नया डेटा डालें)।जावा मोंगो टेम्पलेट: उपरोक्त वस्तुएं उत्पन्न नहीं कर रहे हैं
public class CommentDAO implements ICommentDAO {
@Autowired
@Qualifier(value = "mongoDB")
MongoTemplate mongoTemplate;
public UserComment addComment(UserComment userComment) {
updateStats(userComment, 1L);
mongoTemplate.save(userComment);
return userComment;
}
public void updateStats(UserComment userComment, Long offset) {
Update update = new Update();
update.inc("total", offset);
Query query = query(where("entity").is(userComment.getEntity()));
WriteResult wr = mongoTemplate.upsert(query, update, CommentStat.class);
}
}
यहाँ मेरी टिप्पणी संग्रह में परिणामों की एक उदाहरण है::
{
"_id" : ObjectId("50ab0566e4b0ea8f74b82d48"),
"_class" : "com.test.models.comment.UserComment",
"userId" : 4,
"ownerId" : 3,
"comment" : "Test comment",
"type" : "ART",
"entity" : "759446489112216656",
"date" : Date(1353385318079)
},
{
"_id" : ObjectId("50ab0691e4b0775cf7daacad"),
"_class" : "com.test.models.comment.UserComment",
"userId" : 4,
"ownerId" : 3,
"comment" : "Another test",
"type" : "ART",
"entity" : "759446489112216656",
"date" : Date(1353385617619)
}
... और मेरी एकल, अकेला स्टेट ...
{
"entity" : "759446489112216656",
"total" : 1
}
सूचना यहाँ प्रासंगिक कोड है स्टेट संग्रह पर अनुपलब्ध "_id" और "_class"। मुझे अपने मोंगो या टॉमकैट लॉग में कोई त्रुटि नहीं मिल रही है। क्या किसी ने कभी इस समस्या में भाग लिया है या पता है कि सौदा क्या है? आपकी सहायताके लिए धन्यवाद!
नोट: अगर मैं Upsert हटाने और स्टेट सामान्य रूप से जोड़ने के लिए, सब कुछ ठीक
क्या आप मोंगो डीबी का संस्करण प्रदान कर सकते हैं जिसके बारे में आप चल रहे हैं और आंकड़ों के संग्रह पर अधिक जानकारी? आप db.statistics.stats() चलाकर मोंगो खोल पर संग्रह सारांश मुद्रित कर सकते हैं - अपने संग्रह नाम के साथ "आंकड़े" को प्रतिस्थापित कर सकते हैं। –
आपने स्टेट संग्रह से अपनी प्रविष्टि कैसे आउटपुट की? यह संभव नहीं है कि यह ऑब्जेक्ट आईडी() के बिना मोंगोडीबी में डाला जाएगा - तो यह ऐसा लगता है कि यह जावा पीओवी से ऊपर की तरह दिखता है? –