我试图将一个Object导入Mongo。但是当我尝试将Object的值用作_id时,它会失败。错误,即:" [CastError:转换为ObjectID失败,值为" 11563195"在路径" _id"]"以及" [错误:文档在保存前必须有_id]"
我做错了什么?
// Read and import the CSV file.
csv.fromPath(filePath, {
objectMode: true,
headers: keys
})
.on('data', function (data) {
setTimeout(function(){
var Obj = new models[fileName](data);
Obj._id = Obj.SOME_ID;
Obj.save(function (err, importedObj) {
if (err) {
console.log(err);
} else {
console.log('Import: OK');
}
});
}, 500);
})
以下是使用的架构:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var SomeSchema = new Schema(
{
SOME_ID: String,
FIELD01: String,
FIELD02: String,
FIELD03: String,
FIELD04: String,
FIELD05: String,
FIELD06: String,
FIELD07: String,
FIELD08: String,
FIELD09: String,
FIELD10: String,
FIELD11: String,
FIELD12: String,
FIELD13: String
},
{
collection: 'SomeCollection'
});
module.exports = mongoose.model('SomeCollection', SomeSchema);
非常感谢您的时间和帮助。
答案 0 :(得分:0)
默认情况下,mongoose验证_id字段是MongoId。如果你想在_id字段中存储除MongoId以外的东西,你需要给_id字段一个不同的类型。
var SomeSchema = new Schema({
_id: { type: String, required: true }
}