23

mongoose 是否可以使用不同的名称(在我的情况下为大写“ID”)作为模式 _id 字段的别名?我需要添加一个虚拟还是有另一种设置方式?

任何帮助都非常感谢。

4

3 回答 3

29

您将为此使用虚拟属性。如:

yourSchema.virtual('ID').get(function() { return this._id; });
于 2012-04-28T14:37:51.100 回答
3

最简单的方法是alias在模式中指定:

let s = new Schema({
    _id: { type: String, alias: "ID" }
});

这会自动创建 getter 和 setter,因此可以在ID任何地方使用而不是_id.

关于别名的 Mongoose 文档

于 2020-09-05T09:33:51.483 回答
1

根据v5.11.9mongoose 文档,mongoose默认为您的每个模式分配一个 id virtual getter,它返回文档的_id字段

于 2021-01-01T20:53:33.133 回答