मैं MongoDB के लिए मेरे node.js एप्लिकेशन के साथ एक ओडीएम के रूप में मोंगोस का उपयोग शुरू करने की कोशिश कर रहा हूं। मैंने देखा है कि जब मैं एक एम्बेडेड दस्तावेज़ के साथ एक स्कीमा तैयार करता हूं कि यदि मैं इसमें कोई मान नहीं जोड़ता, तो यह मोंगो में एक खाली सरणी "[]" संग्रहीत करता है। ऐसा क्यों है? मैं रिकॉर्ड में ऐतिहासिक परिवर्तनों को संग्रहीत करने की कोशिश कर रहा हूं और एक खाली सरणी का अर्थ यह होगा कि उस परिवर्तन ने मूल्य हटा दिया। यहां एक नमूना स्कीमा है।मोंगोस खाली ऐरे क्यों जोड़ता है?
schema.Client = new mongoose.Schema({
name:{type:String, required:true},
products:[{
name:{type:String, index:true},
startDate:Date,
endDate:Date
}],
subdomain:{type:String, index:{unique:true}},
})
परिणामस्वरूप दस्तावेज़ है जब मैं केवल दस्तावेज़ और सबडोमेन के साथ दस्तावेज़ सहेजता हूं।
{
"name": "Smith Company",
"products": [],
"subdomain": "smith"
}
डिफ़ॉल्ट रूप से यह रिक्त सरणी वाले उत्पादों को क्यों जोड़ता है और मैं इसे कैसे रोक सकता हूं?
एक सरणी के लिए डिफ़ॉल्ट मान एक खाली सरणी है, तो आप केवल {नाम: "foo" उप डोमेन: "बार"} को बचाने अगर उत्पादों एक खाली सरणी होगी। – supernova
क्या कोई सरणी के लिए डिफ़ॉल्ट मान बदलने का कोई तरीका है जिसके परिणामस्वरूप यह कुछ भी नहीं लिख रहा है? – wintzer
क्या आप कोड पोस्ट कर सकते हैं जहां आप अपना दस्तावेज़ अपडेट करते हैं? – supernova