8

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

我认为这在某种程度上是一个设计缺陷。

4

2 回答 2

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] } },

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

于 2013-02-26T08:35:18.960 回答
7

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

var mongoose = require('mongoose');
var models = mongoose.modelNames()
于 2017-01-03T12:45:09.773 回答