0
저는 몇 가지 조사를 해본 결과 콜렉션을 삭제하는 등 몇 가지 시도를했습니다.몽구스 스키마를 만들 때 객체가 아닌 객체에서 Object.keys가 호출되었습니다.
코드 :
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.")
});
오류 :
/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)
스키마 정의 :
var schemaDefinition = "{SCHID: String, Priority: Number, Status: String, Json: Schema.Types.Mixed})";
당신이 당신의 요구 사항을 설명 할 수 있습니까? 당신의 질문은 정확히 무엇입니까? – Shrabanee
위의 코드를 오류없이 실행하고 싶습니다. 위 코드는 스키마를 만들고 콜렉션에 레코드를 대량으로 추가하는 역할을 담당합니다. 그게 전부 야. –