当前位置: 首页 > 面试题库 >

将模型参数传递给猫鼬模型

何麻雀
2023-03-14
问题内容

我有一个猫鼬模型与用户模型有关联,例如

var exampleSchema = mongoose.Schema({
   name: String,
   <some more fields>
   userId: { type:mongoose.Schema.Types.ObjectId, ref: 'User' }
});

var Example = mongoose.model('Example', userSchema)

当我实例化一个新模型时,我会做:

// the user json object is populated by some middleware 
var model = new Example({ name: 'example', .... , userId: req.user._id });

模型的构造函数需要使用许多参数,这些参数在架构更改时编写和重构很繁琐。有没有办法做类似的事情:

var model = new Example(req.body, { userId: req.user._id });

还是创建帮助器方法以生成JSON对象甚至将userId附加到请求正文的最佳方法?还是我什至没有想到的方式?


问题答案:
_ = require("underscore")

var model = new Example(_.extend({ userId: req.user._id }, req.body))

或者如果您要将userId复制到req.body中:

var model = new Example(_.extend(req.body, { userId: req.user._id }))


 类似资料:
  • 问题内容: 在阅读教程时,通常会在模式和模型之间进行区分,特别是在处理mongoose / mongodb时。由于在该系统下似乎不存在“模型”,因此移植到Postgresql会有些混乱。两种方法有什么区别? 例如,此行的postgres / sql ORM等价于什么? (猫鼬和express.js): 问题答案: 在猫鼬中,模式表示特定文档的结构,可以是完整文档,也可以是文档的一部分。这是表达期望

  • 在前端,我有3个层次结构。 顶层显示一个测试摘要,包含统计信息,如%通过/失败、各种标签、运行标识等。 第二级由测试套件的各个部分组成,这些部分可以通过顶级运行id访问。其中包含测试的名称,特定的测试通过/失败。 第三级是实际测试本身,包括报告、通过/失败状态等。 我使用的是平均堆栈,我想知道使用1、2或3种不同的Mongoose模型在MongoDB中存储数据的利弊。我知道在数组中使用嵌入式文档的

  • 问题内容: 我想将登录用户单击的sa 列表中的传递给twitter bootstrap 。我正在与 angularjs* 一起使用 grails ,其中数据是通过 angularjs 呈现的。 *** 组态 我的grails视图页面是 我的是 所以,我怎么能传递到? 问题答案: 我尝试如下。 我在 鼓励 按钮上打电话给angularjs控制器, 我设置的从angularjs控制器。 我提供了一个p

  • 问题内容: 我有以下代码,使用Keras Scikit-Learn Wrapper ,可以正常工作: 该 可下载 这里 。 现在,我要做的是通过以下方式将值传递给函数的参数 使用如下功能: 但是它无法给出此错误: 什么是正确的方法? 问题答案: 您可以向构造函数添加关键字参数:

  • 在我的应用程序中,我试图将as传递给。当我打印该数组时,它会给出所选值的正确结果。但它在我的模型函数中给了我一个错误。 这是我的控制器: 这是我的模型: 错误: 遇到PHP错误严重程度:注意 消息:数组到字符串转换 文件名:models/Property_m.php 行号: 26 回溯: 文件:/opt/lampp/htdocs/livemg/application/models/Property

  • 问题内容: 我正在学习平均堆栈,当我尝试使用启动服务器时 我有一个例外说: 这是我在/models/Posts.js中的代码 如我所见,应该为模型“ Post”注册架构,但是什么原因可能导致引发异常? 提前致谢。 编辑: 这是异常错误 这是带有猫鼬初始化的app.js代码: 前行: 问题答案: 模型导出不是问题。我遇到过同样的问题。 真正的问题是需要模型声明 低于路线依赖关系。只需将mongoDB