循环填充抛出无关错误

时间:2016-11-23 13:45:28

标签: node.js mongoose

我收到此错误,但架构中没有虚拟内容。

Error: If you are populating a virtual, you must set the localField and foreignField options

模式

let kategoriSchemaObject = {
//...
    kategoriChildren: [{
        type: Schema.Types.ObjectId,
        ref: 'Kategori'
    }],
//...
}

let kategoriSchema = new Schema(kategoriSchemaObject , {
    timestamps: {
        createdAt: 'created_at'
    }
});

mongoose.model('Kotegori', kategoriSchema );

查询

Categories.find({
    kategoriUst: null,
})
.populate({
    path: 'kategoriChildren',
    options: {
      limit: 8,
    },
    populate: {
      path: ' kategoriChildren',
      select: 'name',
      options: {
        limit: 6,
      },
    },
  })
  .exec()
  .then((data) => {

//...
    next();
  })
  .catch((err) => next(err));

如果我删除第二个填充它按预期工作。

我在这里遗漏了什么吗?我还开了issue这个。

1 个答案:

答案 0 :(得分:1)

正如评论部分所述

populate(...)说明' kategoriChildren'中有一个空格。

类别架构的名称拼写错误:

  

您确实将您的架构创建为Kotegori,将您的链接创建为Kategori