MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

फ्लाई पर नए उल्का संग्रह बनाना

मुझे पूरा यकीन नहीं है कि यह काम करेगा:

आपको इसकी दो भागों में आवश्यकता होगी, पहला आपके द्वारा पहले सेट किए गए संग्रह को लोड करने के लिए (क्लाइंट और सर्वर दोनों पर)

var collections = {};
var mysettings = new Meteor.Collection('settings') //use your settings

//Startup
Collectionlist = mysettings.find({type:'collection'});

Collectionlist.forEach(function(doc) {
    collections[doc.name] = new Meteor.Collection(doc.name);
})'

और आपको सर्वर पर संग्रह जोड़ने के लिए थोड़ा सा चाहिए:

Meteor.methods({
    'create_server_col' : function(collectionname) {
       mysettings.insert({type:'collection', name: collectionname});
       newcollections[collectionname] = new Collection(collectionname);
       return true;
    }
});

और आपको उन्हें क्लाइंट पर बनाने की आवश्यकता है:

//Create the collection:

Meteor.call('create_server_col', 'My New Collection Name', function(err,result) {
    if(result) {
        alert("Collection made");
    }
    else
    {
        console.log(err);
    }
}

दोबारा, यह सब परीक्षण नहीं किया गया है इसलिए मैं इसे केवल एक शॉट दे रहा हूं उम्मीद है कि यह काम करेगा।

संपादित करें

शायद नीचे काम करना चाहिए, मैंने यह देखने के लिए कुछ चेक जोड़े हैं कि संग्रह पहले मौजूद है या नहीं। कृपया आप meteor reset चला सकते हैं ऊपर दिए गए कोड से बग्स को सॉर्ट करने के लिए इसका उपयोग करने से पहले:

var collections = {};
var mysettings = new Meteor.Collection('settings')

if (Meteor.isClient) {
  Meteor.startup(function() {
    Collectionlist = mysettings.find({type:'collection'});

    Collectionlist.forEach(function(doc) {
        eval("var "+doc.name+" = new Meteor.Collection("+doc.name+"));
    });
  });
  Template.hello.greeting = function () {
    return "Welcome to testColl.";
  };

  var collectionname=prompt("Enter a collection name to create:","collection name")

  create_collection(collectionname);

  function create_collection(name) {
    Meteor.call('create_server_col', 'tempcoll', function(err,result) {
        if(!err) {
            if(result) {
                //make sure name is safe
                eval("var "+name+" = new Meteor.Collection('"+name+"'));
                alert("Collection made");
                console.log(result);
                console.log(collections);
            } else {
                alert("This collection already exists");
            }
        }
        else
        {
            alert("Error see console");
            console.log(err);
        }
    });
  }
}

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup
    Collectionlist = mysettings.find({type:'collection'});

    Collectionlist.forEach(function(doc) {
        collections[doc.name] = new Meteor.Collection(doc.name);
    });
  });

  Meteor.methods({
    'create_server_col' : function(collectionname) {
       if(!mysettings.findOne({type:'collection', name: collectionname})) {
        mysettings.insert({type:'collection', name: collectionname});

        collections[collectionname] = new Meteor.Collection(collectionname);

        return true;
       }
       else
       {
        return false; //Collection already exists
       }
    }
  });
}

यह भी सुनिश्चित करें कि आपके नाम जावास्क्रिप्ट से बच गए हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. किसी सरणी में नई वस्तु जोड़ने के लिए MongoDB के $push का उपयोग करते समय ObjectID के साथ _id क्यों जोड़ा जाता है?

  2. एसक्यूएल एलपीएडी ()

  3. मोंगोडब को विशेष पात्रों को अनदेखा करने से रोकें?

  4. मोंगोडब रिटर्निंग दस्तावेज़ ऑर्डर ढूंढता है

  5. MongoDB के साथ नेस्टेड ऐरे को अपडेट करना