如果我宣布像这样的猫鼬模型,那么看起来就像猫鼬一样:
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有多元化规则,为什么我还需要传入集合名称才能找到数据呢?
答案 0 :(得分:1)
这是因为Mongoose将模型名称复数并将其转换为小写。因此,如果模型名称为'Region'
,则会查看regions
集合。
因此,您需要在model
调用中提供明确的集合名称(如您所示),但集合名称为'Regions'
:
var Region = mongoose.model('Region', regionSchema, 'Regions')