क्या JSON ऑब्जेक्ट की सरणी को केवल एक कॉल के साथ एक मोंगोडब में सहेजने का कोई तरीका है? कुछ की तरह:केवल एक कॉल के साथ मोंगोस डीबी में ऑब्जेक्ट्स की सरणी को कैसे सहेजना है?
schemeObject.save(array_of_json_object, callback);
मैं mongoosejs
क्या JSON ऑब्जेक्ट की सरणी को केवल एक कॉल के साथ एक मोंगोडब में सहेजने का कोई तरीका है? कुछ की तरह:केवल एक कॉल के साथ मोंगोस डीबी में ऑब्जेक्ट्स की सरणी को कैसे सहेजना है?
schemeObject.save(array_of_json_object, callback);
मैं mongoosejs
उपयोग कर रहा हूँ मैं mongooosejs के साथ अपने संभव नहीं लगता। हालांकि आप मोंगोडब के बैच डालने का उपयोग कर सकते हैं, जिसे मूल रूप से समर्थित किया जाता है।
सहायक लिंक:
http://www.mongodb.org/display/DOCS/Inserting#Inserting-Bulkinserts
https://groups.google.com/forum/#!msg/mongoose-orm/IkPmvcd0kds/bZuYCN_orckJ
उत्तर दूसरे लिंक में मिलता है। धन्यवाद – jAckOdE
अब सटीक नहीं है। इसके बजाए ऐसा करें: http://stackoverflow.com/a/22874288/687677 – superluminary
कैसे कुछ इस तरह के बारे में? मैं इसे पूरे सरणी के माध्यम से लूप पता .. न मुझे इस के लिए बिग ओ के बारे में पूछने .. शायद नहीं डालने के लिए सबसे अच्छा तरीका है, लेकिन किसी प्रकार की सिर्फ एक प्रारंभिक डेटा डंप के लिए काम करता है ..
var arr = // array of objects;
res = [];
arr.forEach(function (item) {
item.save(function (err) {
res.push(err);
if (res.length === arr.length)
{
// Done
}
});
});
जो एक बैच डालने वाला है, अगर यह एक-एक करके हो! – JehandadK
नहीं है MongooseJS के साथ बैच डालने का एक तरीका। मुझे यकीन नहीं है कि यह एक नई सुविधा है क्योंकि इस सवाल से पूछा गया/उत्तर दिया गया था, लेकिन मुझे लगा कि अगर कोई खोज से यहां आना है, तो उसे ऐसा करने का तरीका पता होना चाहिए। http://mongoosejs.com/docs/api.html#model_Model.create
अगर हम नए दस्तावेज़ बनाना चाहते हैं तो यह काम करना चाहिए। किसी क्वेरी से लौटाए गए सरणी या दस्तावेज़ को अपडेट करने के बारे में कैसे? – jAckOdE
इसके लिए, मुझे लगता है कि आपको परिणाम पर एक खोज() फिर एक के लिए() करना होगा, मानों को अपडेट करें और उनमें से प्रत्येक के लिए एक सहेजें() करें। लेकिन मैं खुद को मोंगोस के लिए काफी नया हूं। –
एक और वैकल्पिक हल है कि मैं का उपयोग किया है:
var array = [{ type: 'jelly bean' }, { type: 'snickers' }];
Candy.create(array, function (err, jellybean, snickers) {
if (err) // ...
});
यहाँ डॉक्स कर रहे हैं। यदि आप वादे के साथ मोंगोज़ का उपयोग कर रहे हैं, तो आप इसे Q का उपयोग करके कर सकते हैं।
आप नीचे दिए गए कोड का उपयोग कर नेवला के लिए डिफ़ॉल्ट वादा के रूप में क्यू का उपयोग शुरू कर सकते हैं:
const mongoose = require('mongoose');
mongoose.Promise = require('q').Promise;
तो फिर तुम नीचे मौजूद दस्तावेज़ों की एक सरणी बचा सकता है। आइए मान लें कि हम उपयोगकर्ता मॉडल की एक सरणी संग्रहित कर रहे हैं, जिसे मैंने users
चर में दिखाया है।
Q
.all(users.map(curr => curr.save()))
.then((results) => { //do something })
.catch((err) => { //handle error })
.save()
वापसी एक q
वादा और सरणी map
समारोह का उपयोग कर, हम उपयोगकर्ता मॉडल सारणी का उपयोग करके वादा सरणी पैदा हो जाएगी होगा।
यह नेवला साथ काम करता है और साथ ही
Laptop.insertMany(laptopData, function (err, laptop) {
if (err) {
console.log(err);
};
console.log(laptop);
});
आप सही उत्तर अपडेट कर लें कर सकते हैं? –
@IcyFlame आपकी लिंक्ड पोस्ट तकनीकी रूप से इस का एक डुप्लिकेट है। –
@DanMandle सही! मैंने तारीखों को नोटिस नहीं किया। इंगित करने के लिए धन्यवाद। – IcyFlame