【发布时间】:2018-01-31 08:23:20
【问题描述】:
我有一个“作业”MongoDB 集合,其中包含包含评分函数的文档。我想将此评分函数存储在作业文档中,因为随着新作业的创建,评分逻辑可能会随时间而变化:
作业
{
_id: "assignment1",
question: "Number between 1 and 10",
scoringFunction: function (value) { value * 2 }
}
当用户完成分配时,将插入“事件”集合中的新文档:
事件
{
_id: "event1",
answer: "4",
score: "8"
}
我可以将上面的 Assignment 文档插入到我的 Assignments 集合中,但是当我尝试检索 scoringFunction 时,它不再是一个函数,而是一个对象。
一些调试代码:
const assignment = Assignments.findOne({ _id: "test" })
console.log(assignment.scoringFunction)
调试代码输出:
Code {
_bsontype: 'Code',
code: 'function (value) { value * 2 }',
scope: undefined
}
如何将此对象解码回一个 JavaScript 函数,该函数可以通过参数调用以计算分数?
【问题讨论】:
-
在这里解决了类似的问题:stackoverflow.com/questions/3946958/… 请注意下面接受的答案。
标签: javascript mongodb meteor