如何获取Mongoose实例的所有模型的对象

bus*_*ens 6 mongoose node.js

我知道mongoose.model("myModel")返回myModel模型.但是我如何让Mongoose给我一个目前已注册的所有模型的数组/对象/列表?

我认为这有点是一个设计缺陷.

bus*_*ens 8

截至目前,有一种正式的方式:Mongoose#modelNames().


您可以通过访问所有模型的对象mongoose.models.这看起来像这样:

models:
  { myModel:
    { [Function: model]
      modelName: 'myModel',
      auth: [Function],
      model: [Function: model],
      options: undefined,
      db: [Object],
      schema: [Object],
      collection: [Object],
      base: [Circular] } },
Run Code Online (Sandbox Code Playgroud)

在我看来,摆弄API私有东西是不好的,所以这是一个Mongoose的设计缺陷(见LearnBoost/mongoose#1362).


小智 6

您可以使用以下命令获取所有现有模型的数组:

var mongoose = require('mongoose');
var models = mongoose.modelNames()
Run Code Online (Sandbox Code Playgroud)