有没有办法从猫鼬模型实例中获取模型名称?

Men*_*des 14 javascript mongoose node.js

我正在使用猫鼬,我需要从模型实例中找到模型名称。

在代码的一部分中,我有:

 const schema = new mongoose.Schema({
        name: {
            type: String,
            required: true
        },
        phone: {
            type: String,
            required: true
        }
    }

const schema = new mongoose.Schema('MyData', schema);

let instance = new this({
      name: 'Pete',
      phone: '123'
});
Run Code Online (Sandbox Code Playgroud)

这个实例变量在我的代码中传递。后来我需要找出实例名称,但我不确定是否有办法做到这一点,例如:

let instanceName = getInstanceName(instance); <== Expects 'MyData' to be returned
Run Code Online (Sandbox Code Playgroud)

使用猫鼬可以吗?

Lor*_*ren 19

我意识到我有一个模型而不是模型的实例,所以我需要使用其他东西。

如果您有模型,则可以获得如下名称:

const model = mongoose.model("TestModel", schema);
const collectionName = model.collection.collectionName;
Run Code Online (Sandbox Code Playgroud)

如果您有模型的特定项目/实例:

const instance = new model({...});
const collectionName = instance.constructor.modelName
Run Code Online (Sandbox Code Playgroud)

正如汉娜发布的那样。

  • 这是系列名称,而不是型号名称。模型名称为 model.modelName (3认同)

小智 13

可以使用 this 访问模型的名称instance.constructor.modelName