2017-03-29 1 views
0

Ich übergebe ein Objekt mit 10000 Schlüssel/Wert Paaren und erzeuge 'gameItem' Dokumente und füge sie zu meinem 'Items' Feld als Hash Objekt hinzu und speichere sie dann in meinem Mongo-Sammlung so.mondo db speichert nicht mit großen Dokumenten

Hier ist meine Haupt-Sammlung

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var myItemDbSchema = new Schema({ 
    db_num: Number, 
    last_updated: Number, 
    items: {type: {}, default: {}} 
}, { minimize: false }); 

module.exports = mongoose.model('myItemDb', myItemDbSchema); 

und dann Logik meiner

PartnerAPI.getItems(function(err, partnerItems){ 

    myItemDb.findOne({"db_num": 1}, function(myItemDB){ 

     for(var partnerItem in partnerItems){ 

      if(!myItemDB.items[partnerItem]){ 

       var newItem = new gameItem({ 
        name: partnerItems[partnerItem].name 
       }); 

       myItemDB.items[partnerItem] = newItem; 
      } 

      myItemDB.markModified('items'); 

      myItemDB.save(function(err){ 
       logger.info("Saved"); 
      }); 
     } 

    }); 
}); 

Partnerpositionen wie folgt aussehen

{ 
    'ballistic-weapon-1':{name:'bl1', value:'rare'} 
}, 
{ 
    'ballistic-weapon-2':{name:'bl2', value:'rare'} 
} 

Das funktioniert gut, wenn ich nur nicht mehr hinzufügen, als 300 bis das Feld Elemente und dann markieren Sie die Elemente als geändert und dann speichern ... aber wenn ich versuche, alle 10.000 hinzufügen und versuchen, sav e - sie nicht. Gibt es eine Größenbeschränkung für die Anzahl der Dokumente, die ich einem Feld mit einem Typ {} hinzufügen kann?

Gibt es eine bessere Möglichkeit, diese Dokumente zu speichern, ohne eine Logik schreiben zu müssen, um zu begrenzen, wie viele Speichervorgänge ich bei jeder Iteration mache?

Antwort

Verwandte Themen