猫鼬填充不起作用

威廉·肯尼迪

猫鼬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()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章