Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js mongoose文档值可以是函数吗?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js mongoose文档值可以是函数吗?

Node.js mongoose文档值可以是函数吗?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,为了便于讨论,我们采用以下模式: const ImaginarySchema = new Schema ({ Name: String, Age: Number, Weight: Number, Value: Number, }); 在此模式中,值的计算方式由以下函数表示: function calculateValue(age, weight) { value = Age*Weight; }; 考虑到年龄每天增加一岁,该值当然会定期变化

为了便于讨论,我们采用以下模式:

const ImaginarySchema = new Schema ({
    Name: String,
    Age: Number,
    Weight: Number, 
    Value: Number, 
    });
在此模式中,值的计算方式由以下函数表示:

function calculateValue(age, weight) {
    value = Age*Weight; 
};
考虑到年龄每天增加一岁,该值当然会定期变化,因此需要使用函数自动计算

实现这一点的最佳方式是什么?它应该放在应用程序中的什么位置


我的尝试:


首先,我想尝试下面的语法,但根据建议,不建议将应用程序逻辑存储在服务器上,因此将此函数保存在server.js中似乎不是最好的主意,这是假设这种语法甚至是可能的

const ImaginarySchema = new Schema ({
    Name: String,
    AgeinDays: Number,
    Weight: Number, 
    Value: calculateValue(), 
    });
第二,我在看下面的内容,但我仍然不清楚这是否应该在模型文件中,如果它在模型文件中,那么如何定期运行它

.pre('save'), function(next){
function calculateValue(age, weight) {
   value = Age*Weight; 
 next(); 
 };

提前感谢您的帮助

也许你正在寻找难以捉摸的猫鼬静力学:

静力学创建了一个人工方法,可以解析为您想要的结果

如果这不是您要搜索的内容,请查看下面的内容,其中有一些查询帮助程序可能适合您的需要

如果这仍然不是你正在寻找的,看看下面,我认为有一些虚拟的最符合你的描述


除上述内容外,我不建议您在给定相同静态输入的情况下更新数据源(数据库)以存储动态值。我建议您有一个模型层(定义模式和与模式相关联的静态/帮助程序),并使用它来计算您的值。

根据,文档不能是函数。 有效类型包括:

  • 日期
  • 缓冲区
  • 布尔值
  • 混合的
  • 目标
  • 排列
  • 小数128
  • 地图

当你需要的时候,你就不能马上计算吗?也许我可以,这是常见的做法吗?我将在集合中有大量文档,因此运行时间可能是一个问题?您何时需要该值?您需要始终显示多少个值?我需要在给定页面上显示value>x的所有条目。因此,每当用户访问此页面时,都必须对其进行计算。我认为最好的方法是执行get请求并读取值,而不是更新值然后读取,因为在我的应用程序中,有几个值对最终值有贡献,与x进行比较。客户端的乘法可能是实现治理的方法。虚拟机正是我所追求的,他们让我把函数编码到数据库中,很容易调用,太棒了,谢谢你。