lon*_*nix 8 mongoose node.js typescript
我将 Mongoose 和 TypeScript 与 interface+ class +schema方法一起使用。
存储该_id字段的规范方法是什么?
我知道数据库将它存储为 bson ObjectID。但是我已经看到一些string使用 mongoose's 的示例ObjectId,然后出于各种原因在它们之间进行转换 - 所以我不确定使用哪个。
interface Animal {
_id: ?type?; // ?
name: string;
}
Run Code Online (Sandbox Code Playgroud)
是否建议使用
stringmongoose.Types.ObjectIdmongodb.ObjectIDbson.ObjectID另外,假设使用 objectid 是正确的 - 我想避免在接口文件中依赖猫鼬。使用bson软件包是否安全/可取ObjectID- 它们是否等效?
kad*_*iro 23
你可以这样做
import { Types } from 'mongoose';
interface Animal {
_id: Types.ObjectId,
name: string
}
Run Code Online (Sandbox Code Playgroud)
Sir*_*hau 11
摘自猫鼬文档:
Types从猫鼬导入_idimport { Types } from 'mongoose';
interface Animal {
_id: Types.ObjectId;
name: string;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用mongoose.Document. 你的界面会来
interface Animal extends mongoose.Document {
name: string;
}
Run Code Online (Sandbox Code Playgroud)
用法:
export let AnimalSchema = mongoose.model<Animal>('animal', schema, 'animals');
let animal = await AnimalSchema.find({_id: "id"}).exec();
// animal._id / animal.name
Run Code Online (Sandbox Code Playgroud)