Mongoose复数规则不起作用

时间:2014-11-04 08:36:04

标签: node.js mongoose

如果我宣布像这样的猫鼬模型,那么看起来就像猫鼬一样:

var User = mongoose.model('user', userSchema)

然后mongoose将创建一个名为“users”的集合(带有's')。

但是,我已经在mongo中手动创建了一个名为“Regions”的集合。当我尝试声明我的猫鼬模型时,它看起来像这样:

var Region = mongoose.model('Region', regionSchema)

但是当我尝试使用Region.find()返回所有对象时,返回零结果。 所以我接着尝试了:

var Region = mongoose.model('Regions', regionSchema)

这也导致零结果。

最后我必须这样做:

var Region = mongoose.model('Region', regionSchema, 'Results')

如果mongoose有多元化规则,为什么我还需要传入集合名称才能找到数据呢?

1 个答案:

答案 0 :(得分:1)

这是因为Mongoose将模型名称复数并将其转换为小写。因此,如果模型名称为'Region',则会查看regions集合。

因此,您需要在model调用中提供明确的集合名称(如您所示),但集合名称为'Regions'

var Region = mongoose.model('Region', regionSchema, 'Regions')