के साथ मोंगोडीबी संग्रह में एक फ़ील्ड बढ़ाना मैं मोंगोस के माध्यम से अपने मोंगोडीबी डेटाबेस में संग्रह में एक मूल्य बढ़ाने की कोशिश कर रहा हूं। यह नेवला वेबसाइट पर दिखाया डेमो कोड है:मोंगोस
var conditions = { name: 'borne' }
, update = { $inc: { visits: 1 }}
, options = { multi: true };
Model.update(conditions, update, options, callback)
और मैं कुछ इस तरह है:
var conditions = { "uniqueId" : itemId };
var update;
if(increase)
update = {$inc : {inStock : 1}};
else
update = {$dec : {inStock : 1}};
Item.update(conditions, update, {}, callback);
आप देख सकते हैं वहाँ नेवला की वेबसाइट कोड से ज्यादा अंतर नहीं है।
समस्या यह है कि जब कोड के इस टुकड़े निष्पादित किया जाता है, मैं अपने संग्रह के लिए एक क्षेत्र $dec
कहा जाता है (या $inc
) में होने जो फार्म {inStock : 1}
में एक क्षेत्र के रूप में एक वस्तु है पहुंचते हैं। मैं सिर्फ संग्रह की इनस्टॉक प्रविष्टि में वृद्धि करना चाहता हूं। स्कीमा में मेरे पास है:
var ItemToSell = new Schema({
uniqueId : { type: Number, index: true }
, name : String
, type : String
, inStock : Number
});
क्या कोई यह बता सकता है कि मैं क्या गलत कर रहा हूं? बहुत बहुत धन्यवाद।
उत्तर के लिए धन्यवाद। रिक्त स्थान को हटाकर '{} 'मैंने समस्या को हल किया जो' {"$ dec": {"inStock": 1}} को संग्रह में जोड़ा जाना था। आप इस तथ्य के साथ भी सही थे कि मैं मोंगोस के पुराने संस्करण का उपयोग कर रहा था लेकिन फिर भी मैंने इस मुद्दे को हल नहीं किया। अब ऐसा लगता है कि यह संग्रह में कुछ भी नहीं करता है। – Masiar
ठीक है मैंने इस मुद्दे को हल किया। कॉलबैक फ़ंक्शन के 'त्रुटि' इनपुट ने अब कुछ दिया है कि मैं Mongoose के अपने संस्करण को अद्यतन करता हूं। मैंने पाया कि '$ dec' मौजूद नहीं है, इस प्रकार कमी के लिए मुझे ऋणात्मक राशि (' {$ inc: {inStock: -1}} 'इनपुट करना होगा)। कोशिश करने के लिए धन्यवाद हालांकि, यह बहुत मदद की! – Masiar
क्या आप जानते हैं कि पैरामीटर के रूप में "** इनस्टॉक **" कैसे करें? –