I met a strange question when I save position points in mongo by mongoose.
const testSchema1 = new mongoose.Schema({
releasePoints: [{
type: [Number]
}]
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});
const testSchema2 = new mongoose.Schema({
releasePoints: [[Number]]
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});
When I use testSchema2
save data success, but I use testSchema1
throw err
:
validation failed: releasePoints: Cast to Array failed for value "[ [ 2.3635503,....
What difference about testSchema1
and testSchema2
?
Can add validate in testSchema1
?
For example:
const testSchema1 = new mongoose.Schema({
releasePoints: [{
type: [Number],
validate: (val) => val.length === 2
}]
}, {
timestamps: {
createdAt: 'created_at',
updatedAt: 'updated_at'
}
});