Mongoose 静态变量/全局非易失性变量

问题描述 投票:0回答:1

我正在 Nodejs 中编写代码,需要为“流程”模式的文档实现全局queueCount,是否有某种方法可以在模式级别存储静态变量(如方法),这些变量可以由构成模型的所有文档共同访问该架构,我还需要修改queueCount。 如果有另一个更好的选择,无需深入研究也可以工作的模式,请建议(基本上需要一个全局变量,它不是易失性的(在服务器重新启动或崩溃时重置),最好存储在数据库而不是服务器实例上)

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const constants = require('../constant/constant');

const QueueProcessSchema = new Schema({
    projectId: {
        required: true,
        type: Schema.Types.ObjectId,
        ref: 'Project'
    },
    status: {
        type: String,
        enum: constants.processStatus
    },
    version: {
        type: String
    },
    isPublic: {
        type: Boolean,
        required: true,
        default: false
    },
    queueRank: {
        type: Number,
        default: -1
    }
});

QueueProcessSchema.plugin(require('mongoose-timestamp'));
QueueProcessSchema.plugin(require('mongoose-delete'), {
    overrideMethods: true,
    deletedAt: true
});
node.js mongodb schema mongoose-schema
1个回答
0
投票

也许 Schema.prototype.method() 可能对您有用。它允许您向 shemas 添加自定义方法,并且在您的情况下可用于返回任意值。例如:

QueueProcessSchema.method('Everest', function () {
  return 8848.86;
});

const queueProcess = mongoose.model('QueueProcess', QueueProcessSchema);

const doc = new queueProcess;
doc.Everest();
// 8848.86
© www.soinside.com 2019 - 2024. All rights reserved.