猫鼬填充不工作

Mongoose populated is not working

猫鼬 populated 文档:

Model.findOne().populate('author').exec(function (err, doc) {
    console.log(doc.author.name)         // Dr.Seuss
    console.log(doc.populated('author')) // '5144cf8050f071d979c118a7'
})

我的代码:

Job.find({operator: user.operator, status: {$nin: ['assigned', 'unassigned', 'completed']}})
        .populate('version', 'results.routes')
        .exec(function(err, jobs)
        {
            console.log(jobs.populated('version'))
            ...

代码运行时出现此错误: TypeError: jobs.populated is not a function

为什么会出现此错误?我在这里做错了什么?提前致谢。

编辑:发布工作模型:

var JobSchema = new Schema(
    {
        created: Date,
        received: Date,
        due_date: Date,
        freight: Number,
        creator: { type: mongoose.Schema.ObjectId, ref: 'User' },
        operator: { type: mongoose.Schema.ObjectId, ref: 'Operator' },
        routing: { type: mongoose.Schema.ObjectId, ref: 'Routing' },
        version: { 
            type: mongoose.Schema.ObjectId, ref: 'Version',
            validate: [validateStarredVersion, 'You must star this route before monitoring it.']
        },
        ...

版本型号:

var VersionSchema = mongoose.Schema(
{
    routing: { type: mongoose.Schema.ObjectId, ref: 'Routing' },
    name: String,
    number: Number,
    date: Date,
    tags: [String],
    results:
    {
        routes:
        [ resultSchema ],
    ...

结果架构:

var resultSchema = new Schema(
{
    name: String,
    vehicle: mongoose.Schema.Types.Mixed,
    distance: Number,
    weight: Number,
    volume: Number,
    capacity_weight: Number,
    capacity_volume: Number,
    occupancy_weight: Number,
    occupancy_volume: Number,
    job: { type: mongoose.Schema.ObjectId, ref: 'Job' },
    operator: mongoose.Schema.Types.Mixed,
    delivery_order:
    [
        {
            delivery: mongoose.Schema.Types.Mixed,
            depot: mongoose.Schema.Types.Mixed,
            arrival_time: Date
        }
    ],
    directions: [ directionSchema ]
});

我没有对整个对象进行编辑,因为它太大了。我只放了相关的资料。

文档使用 findOne(),而您的代码使用 find()。这意味着变量 jobs 不是猫鼬文档,而是猫鼬文档数组。本机 Array 没有方法 .populated()