2011-12-23 16 views
8

के साथ मोंगोडीबी में बड़ी संख्या में स्टोर कैसे करें मैं मूल नोड चालक के साथ मोंगोडीबी का उपयोग कर रहा हूं और अधिकतम 2147483647 की तुलना में बड़ी संख्या में स्टोर करने की आवश्यकता है। मुझे संख्या में वृद्धि करने में सक्षम होना चाहिए मैं उपयोग ट्रैकिंग कर रहा हूँ। मेरे विकल्प क्या हैं?नोड.जेएस

मैं मोंगोस का उपयोग कर रहा हूं। मेरी समस्या यह है कि जब मैं $inc पिछले 2147483647 में यह संख्या को एक डबल में परिवर्तित करता है। मैं मोंगोस को 64-बिट लंबे int NumberLong का उपयोग करने के लिए कैसे मजबूर कर सकता हूं?

मेरे स्कीमा इस

var schema = new Schema({ 
    ... 
    usedBandwidth: {type: Number, min: 0, default: 0} 
}); 

तरह लग रहा है और मेरे $inc तरह लग रहा है इस

model.Account.update(
    {_id: this.account}, 
    {$inc: {usedBandwidth: this.size}}, 
    function (err, doc) {} 
); 
+0

मैं बस कुछ अधिक जानकारी और कोड – respectTheCode

उत्तर

7

अब आप इसे मोंगोस में mongoose-long प्लग-इन के साथ कर सकते हैं। के बराबर या 2^31 से भी बड़ा डेल्टा मूल्यों के लिए: (नहीं मोंगो, लेकिन नेवला टिप्पणी)

require('mongoose-long')(mongoose); 
var SchemaTypes = mongoose.Schema.Types; 
var schema = new Schema({ 
    ... 
    usedBandwidth: {type: SchemaTypes.Long, min: 0, default: 0} 
}); 
3

MongoDB एक देशी 64-बिट लंबे पूर्णांक प्रकार, आम तौर पर कहा जाता है NumberLong (कम से कम MongoDB जावास्क्रिप्ट में है खोल/चालक)। यदि आप नोड-मोंगोड-मूल ड्राइवर का उपयोग कर रहे हैं, तो मेरा मानना ​​है कि इसे केवल Long कहा जाता है (हालांकि मुझे इस बारे में निश्चित नहीं है, अगर कोई गलत है तो कृपया मुझे सही करें)। $incNumberLong के प्रकार के क्षेत्रों के अपेक्षा के अनुसार काम करता है।

+0

$ इंक नेवला साथ अपेक्षा के अनुरूप काम नहीं करता है जोड़ा। फिर, वे अचानक डबल्स में परिवर्तित होने के अंत हो जाते हैं। – arik

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