2016-08-02 7 views
0

Ich habe ein paar Nachforschungen angestellt und einige Dinge ausprobiert, wie das Löschen der Sammlung usw. Nichts hat geholfen.Abrufen von Object.keys beim Erstellen eines Mungo-Schemas für Nicht-Objekt aufgerufen

Code:

MongoClient.saveData = function(schemaDefinition, data, collectionName){ 
    console.log("Schema definition: "+schemaDefinition+" collection name: "+collectionName); 
    var RecordSchema = new mongoose.Schema(schemaDefinition);//{ Email: String, FirstName: String});//({any: Schema.Types.Mixed }); 
    console.log("Schema created."); 
    var RecordModel = mongoose.model(collectionName, RecordSchema); 
    console.log("Model created. Inserting in batches.") 
    RecordModel.insertMany(data) 
    .then(function(mongooseDocuments) { 
     console.log("Insertion was successful."); 
    }) 
    .catch(function(err) { 
     console.log("Error while inserting to DB.") 
    }); 

Der Fehler:

/home/ubuntu/ds_queuesystem/node_modules/mongoose/lib/schema.js:381 
    var keys = Object.keys(obj); 
        ^
TypeError: Object.keys called on non-object 
    at Function.keys (native) 
    at Schema.add (/home/ubuntu/ds_queuesystem/node_modules/mongoose/lib/schema.js:381:21) 
    at new Schema (/home/ubuntu/ds_queuesystem/node_modules/mongoose/lib/schema.js:98:10) 
    at Function.MongoClient.saveData (/home/ubuntu/ds_queuesystem/MongoClient.js:34:21) 
    at /home/ubuntu/ds_queuesystem/DS_QueueSystem.js:84:18 
    at nextTask (/home/ubuntu/ds_queuesystem/node_modules/async/dist/async.js:6627:18) 
    at /home/ubuntu/ds_queuesystem/node_modules/async/dist/async.js:6621:17 
    at /home/ubuntu/ds_queuesystem/node_modules/async/dist/async.js:339:31 
    at /home/ubuntu/ds_queuesystem/node_modules/async/dist/async.js:840:20 
    at /home/ubuntu/ds_queuesystem/DS_QueueSystem.js:143:3 
    at null.<anonymous> (/home/ubuntu/ds_queuesystem/node_modules/csv-parse/lib/index.js:71:16) 
    at EventEmitter.emit (events.js:117:20) 
    at _stream_readable.js:920:16 
    at process._tickCallback (node.js:415:13) 

Schema Definition:

var schemaDefinition = "{SCHID: String, Priority: Number, Status: String, Json: Schema.Types.Mixed})"; 
+0

Können Sie Ihre Anforderung erklären? Was ist deine Frage genau? – Shrabanee

+0

Ich möchte nur den obigen Code ohne Fehler ausführen. Der obige Code ist für das Erstellen eines Schemas und das Hinzufügen von Datensätzen zur Sammlung in großen Mengen verantwortlich. Das ist es. –

Antwort

1

schemaDefinition sollte ein Object, nicht eine wörtliche sein.

Versuchen mit:

var schemaDefinition = { 
    SCHID: String, 
    Priority: Number, 
    Status: String, 
    Json: Schema.Types.Mixed 
}; 

Dokumentation: http://mongoosejs.com/docs/guide.html

+0

Danke. Eine kleine merkwürdige Fehlermeldung, nicht wahr? –

Verwandte Themen