मुझे एक कॉल का उपयोग करके मोंगोज़ में एकाधिक मानों को एक सरणी में धक्का देना होगा। मैंने इसे एक छोटे सरणी का उपयोग करके करने की कोशिश की लेकिन सरणी को उप-सरणी के रूप में डाला जा रहा है।एक कॉल के साथ मोंगोज़ में किसी सरणी में ऑब्जेक्ट्स की सरणी को कैसे दबाया जाए?
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ 2, 3 ,2 ,3, 2, 3] }
एक और बात मैंने देखा है कि था:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ [ 2, 3 ], [ 2, 3 ], [ 2, 3 ] ] }
जो मैं चाहता जबकि कुछ इस तरह है:
var kittySchema = new mongoose.Schema({
name: String,
values: [Number]
});
var Kitten = db.model('Kitten', kittySchema);
Kitten.update({name: 'fluffy'},{$push: {values:[2,3]}},{upsert:true},function(err){
if(err){
console.log(err);
}else{
console.log("Successfully added");
}
});
बुला उपरोक्त कोड का परिणाम तीन बार नीचे परिणाम देता है सरणी (मानों) में प्रकार को संख्या के रूप में निर्दिष्ट किया गया है, तो 'सख्त' विकल्प यह सुनिश्चित नहीं करेगा कि संख्याओं के अलावा कुछ भी नहीं डाला गया है? इस मामले में एक और सरणी डालने की अनुमति दी जा रही है।
एनबी:: // www आप भी [$ addToSet] (http को देखने के लिए चाहते हो सकता है .mongodb.org/display/DOCS/अद्यतन/# अद्यतन-% 24addToSetand% 24each), जिसका उपयोग केवल सरणी में मान जोड़ने के लिए किया जा सकता है यदि वे पहले से नहीं हैं। – Stennie
धन्यवाद स्टेनी! यह काम करता है। मैं प्रलेखन में इस भाग को याद किया। –
@ स्टेनी यह केवल व्यक्तिगत तत्वों के लिए काम करता है, न कि एरे को संयोजित करने के लिए। – Tom