2016-04-27 10 views
10

में ऑब्जेक्ट्स की सरणी डालें मुझे आश्चर्य है कि मैं अपने पूर्व-परिभाषित _id मानों के साथ मोंगो संग्रह "रूट-स्तरीय दस्तावेज़" में ऑब्जेक्ट्स की सरणी कैसे डाल सकता हूं।मोंगोडीबी

मैंने db.MyCollection.insert(array); की कोशिश की है लेकिन यह मोंगोडीबी में एक एकल जेनरेट _id के तहत नेस्टेड दस्तावेज़ बनाता है।

var array = [ 

     { _id: 'rg8nsoqsxhpNYho2N', 
     goals: 0, 
     assists: 1, 
     total: 1     }, 


     { _id: 'yKMx6sHQboL5m8Lqx', 
     goals: 0, 
     assists: 1, 
     total: 1     }]; 

db.MyCollection.insert (सरणी);

enter image description here

मैं क्या चाहता हूँ

enter image description here

+1

'db.MyCollection.insert (सरणी)' काम करना चाहिए। क्या आपको कोई त्रुटि संदेश मिल रहा है? – styvane

+0

प्रक्रिया कार्य डालें और मेरे पास संग्रह में डेटा है लेकिन मैं "रूट-स्तर" पर ऑब्जेक्ट रखना चाहता हूं और अब उन्हें "0" के अंतर्गत डाला गया है: {}, "1": {} और इसी तरह। मैं अपने सभी ऑब्जेक्ट्स को "रूट-लेवल" दस्तावेज़ के रूप में अपने _id मान – justdiehard

+0

के साथ डालना चाहता हूं दस्तावेज़ के साथ आप हमें दिखाते हैं कि आपको वह परिणाम नहीं मिल सकता है। – styvane

उत्तर

0

आप MongoDB Bulk का उपयोग डेटाबेस के लिए एक ही कॉल में एक से अधिक दस्तावेज़ सम्मिलित करने के लिए कर सकते हैं। पाश के बाद

bulk.insert(item) 

, execute फोन:

अपने सरणी पर सबसे पहले दोहराएं और प्रत्येक आइटम के लिए bulk विधि कॉल

bulk.execute() 

अधिक जानने के लिए refereed प्रलेखन पर एक नजर डालें।

3

क्यों सरणी वस्तुओं से अधिक पुनरावृति नहीं है, और उन्हें एक बार में एक सम्मिलित?

array.forEach((item) => db.MyCollection.insert(item)); 
+0

मैंने यह किया है, लेकिन मुझे – justdiehard

0

db.collection.insertMany() तुम क्या जरूरत है (3.2 से समर्थित):

db.users.insertMany(
    [ 
    { name: "bob", age: 42, status: "A", }, 
    { name: "ahn", age: 22, status: "A", }, 
    { name: "xi", age: 34, status: "D", } 
    ] 
) 

उत्पादन:

{ 
    "acknowledged" : true, 
    "insertedIds" : [ 
     ObjectId("57d6c1d02e9af409e0553dff"), 
     ObjectId("57d6c1d02323d119e0b3c0e8"), 
     ObjectId("57d6c1d22323d119e0b3c16c") 
    ] 
} 
+0

डालने में "परिणाम/सफल" फ़ंक्शन जोड़ने की अनुमति नहीं दे रही है, इस तरह के कई "अपरिवर्तित" करने का कोई तरीका है? मैं हर बार एक सरणी धक्का देना चाहता हूं लेकिन ज्यादातर आइटम मौजूद होंगे – PirateApp