我试图用类型记录将我的模型绑定到一个猫鼬模式,除了在mongoose.Types.DocumentArray<>中使用mongoose.Types.DocumentArray<>之外,一切看起来都很好。
export interface TestModel extends mongoose.Document {
name: string;
sort: mongoose.Types.DocumentArray<mongoose.Schema.Types.ObjectId>;
}
const TestSchema = new mongoose.Schema({
name: String,
sort: [mongoose.Schema.Types.ObjectId]
});
export default mongoose.model<TestModel>('Test', TestSchema);下面是我看到的错误
类型'ObjectId‘不满足约束'MongooseDocument’。 类型“ObjectId”中缺少“MongooseDocument”类型中的下列属性:$isDefault、$session、度、相等和24 more.ts(2344)
如果我用
sort: [mongoose.Schema.Types.ObjectId];而不是
sort: mongoose.Types.DocumentArray<mongoose.Schema.Types.ObjectId>;在模式方面,一切看起来都很好,但是在对模态结果进行操作时,我看到了.pull()等方法的猫鼬类型错误(TS没有将其作为mongoose数组类型来获取)。
用这个抓我的头几个小时,任何帮助都会很感激。
发布于 2019-05-01 06:15:29
发现问题了。我很笨,这是一个愚蠢的错误,我在类型定义中使用了错误的类型。应该使用mongoose.Types.Array而不是mongoose.Types.DocumentArray
https://stackoverflow.com/questions/55931678
复制相似问题