如何在TypeScript接口中定义mongoose
我正在使用Mongoose和TypeScript接口+ class + schema approach。
存储_id
字段的规范方法是什么?
我知道db将它存储为bson ObjectID
。但我已经看到一些使用string
和其他人使用mongoose的ObjectId
,然后因各种原因在它们之间进行转换的例子 - 所以我不确定使用哪个。
interface Animal {
_id: ?type?; // ?
name: string;
}
是否可取用
string
mongoose.Types.ObjectId
mongodb.ObjectID
bson.ObjectID
另外,假设使用objectid是正确的 - 我想避免在接口文件中依赖mongoose。使用bson
软件包的ObjectID
是否安全/可取 - 它们是否相同?
您可以使用mongoose.Document
扩展您的界面。你的界面会来
interface Animal extends mongoose.Document {
name: string;
}
用法:
export let AnimalSchema = mongoose.model<Animal>('animal', schema, 'animals');
let animal = await AnimalSchema.find({_id: "id"}).exec();
// animal._id / animal.name