我的架构如下所示:
User Schema {
name: String,
email: String
}
Job Schema {
title: String,
owner: { type: Schema.Types.ObjectId, ref: 'User' },
helper: { type: Schema.Types.ObjectId, ref: 'User' }
}
用户和作业都使用ObjectId作为其ID类型。
我的部分应用程序要求我查询作业集合以查找符合特定条件的作业。作为此查询的一部分,我执行一组引用的用户文档。有些事情如下:
Job
.find(query, null, options)
.populate('owner helper', 'name email')
.sort(sort)
.exec(err, function(results) {
...Do Something with populated documents
})
然而,这是一个错误。
{ message: 'Cast to ObjectId failed for value "b" at path "_id"',
name: 'CastError',
type: 'ObjectId',
value: 'b',
path: '_id' }
我检查了所有用户对象的id,它们看起来都是有效的。我不明白可能导致此错误的原因。
任何帮助都将不胜感激。