Javascript 模式';未为架构中的模型注册,但未为来自同一源的其他模型注册
我试图用模式中的信息填充node express路由,但我一直收到这个错误。我无法理解的是,我在同一个确切的模式中引用了三个不同的字段,出于某种原因,我只在其中一个字段中得到了这个错误 这是我的路由函数,在这里我得到“MissingSchemaError:Schema尚未为模型“completed_by_user”注册” 这是票证模式本身:Javascript 模式';未为架构中的模型注册,但未为来自同一源的其他模型注册,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我试图用模式中的信息填充node express路由,但我一直收到这个错误。我无法理解的是,我在同一个确切的模式中引用了三个不同的字段,出于某种原因,我只在其中一个字段中得到了这个错误 这是我的路由函数,在这里我得到“MissingSchemaError:Schema尚未为模型“completed_by_user”注册” 这是票证模式本身: const Transaction = require ("./transaction"); User = require (".
const Transaction = require ("./transaction");
User = require ("./user");
Ticket = require ("./ticket");
Job = require ("./job");
Client = require ("./client");
// =======================Ticket Schema
var ticketSchema = new mongoose.Schema({
ticket_name: String,
description: String,
created_by: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
assigned_user: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
completed_by_user: [{type: mongoose.Schema.Types.ObjectID, ref: "User"}],
due_date: {type: Date},
completed_date: {type: Date},
completed_description: String,
date_added: {type: Date, default: Date.now}
});
module.exports = mongoose.model("Ticket", ticketSchema);
对于“created_by”或“assigned_user”,我没有得到此错误,但是对于“completed_by_user”,我得到了此错误。我不理解为什么会出现此错误,因为它们都填充在同一架构中。这不是我遇到的这类问题的唯一一次,但我相信也是出于同样的原因。我甚至尝试更改我需要的模式的顺序,但这也没有帮助。我有什么明显的遗漏吗?谢谢
.populate(["created_by", "assigned_user", "completed_by_user"])
请尝试此操作,因为.populate函数只接受一个参数,将其放入数组中需要多个参数
尝试此操作,因为.populate函数通过将其放入数组中只接受一个参数,它需要多个,这不是填充多个字段的正确语法。参考以下内容,您可以使用
.populate(“创建人”).populate(“分配的用户”).populate(“完成的用户”)
非常感谢您,我想不起我在哪里学过填充多个字段,但显然我学过的是错误的。谢谢。这不是填充多个字段的正确语法。参考以下内容,您可以使用.populate(“创建人”).populate(“分配的用户”).populate(“完成的用户”)
非常感谢您,我想不起我在哪里学过填充多个字段,但显然我学过的是错误的。非常感谢。
.populate(["created_by", "assigned_user", "completed_by_user"])