我正在使用Mongoose和TypeScript,其接口为+ class + schema approach。
存储_id
字段的规范方法是什么?
我知道数据库将其存储为bson ObjectID
。但是我看到一些示例使用string
,另一些示例使用猫鼬的ObjectId
,然后由于各种原因在它们之间进行转换-因此我不确定该使用哪个。
interface Animal {
_id: ?type?; // ?
name: string;
}
建议使用
string
mongoose.Types.ObjectId
mongodb.ObjectID
bson.ObjectID
此外,假设使用objectid是正确的-我想避免依赖于接口文件中的猫鼬。改用bson
包的ObjectID
是安全/明智的-它们等效吗?
答案 0 :(得分:0)
您可以使用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
答案 1 :(得分:0)
你可以这样做
import { ObjectId } from 'mongoose';
interface Animal {
_id: ObjectId
name: string
}