【发布时间】:2020-03-15 15:02:30
【问题描述】:
我有一个“供应商”和“媒体”收藏,媒体收藏商店供应商个人资料图片,这不是供应商的必填字段。有些供应商有资料图片有些没有,我想列出所有供应商,包括他们的资料图片参考。但是当我从 meidas 填充 profilePicture 时,我遇到了投射错误。我还有其他填充,例如“userId”、“venueId”,它们是必填字段,并且可以正常工作。
错误: CastError:对于模型“medias”未定义的路径“_id”处的值“xyz”,转换为 ObjectId 失败
查找查询:
const result = await resultObject.skip(skip)
.populate('userId')
.populate('venueId')
.populate('profilePicture')
.limit(parseInt(obj.pageSize, 10))
.sort({ [obj.sortColumn]: parseInt(obj.sortValue, 10) });
return result;
媒体模型
const MediasModel = () => {
const MediasSchema = new mongoose.Schema({
url: { type: String, required: true },
key: { type: String},
}, { timestamps: { createdAt: 'createdDate', updatedAt: 'modifedDate' } });
return mongoose.model('medias', MediasSchema);
};
module.exports = MediasModel();
供应商模式
const Vendors = new mongoose.Schema({
venueId: { type: mongoose.Schema.Types.ObjectId, ref: 'venues' },
userId: { type: mongoose.Schema.Types.ObjectId, ref: 'users' },
name: { type: String, required: true },
profilePicture: { type: mongoose.Schema.Types.ObjectId, ref: 'medias' },
}, { timestamps: { createdAt: 'createdDate', updatedAt: 'modifedDate' } });
module.exports = mongoose.model('vendors', Vendors);
【问题讨论】:
标签: javascript node.js mongodb mongoose mongoose-schema