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

xxhby3vn  于 2023-11-17  发布在  Go
关注(0)|答案(1)|浏览(162)

我正在用Nodejs编写代码,需要为“进程”模式的文档实现全局计数,是否有某种方法可以在模式级别存储静态变量(类似方法),可以由该模式的所有文档模型共同访问,另外,我需要修改计数。如果有另一个更好的选择,而不潜入模式,也将工作,请建议,以及(基本上需要一个全局变量,这不是易失性的(在服务器重启或崩溃时重置),最好存储在数据库中,而不是服务器示例中)

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
});

字符串

e5nqia27

e5nqia271#

也许Schema.prototype.method()可能对你有用。它允许你向你的shema添加自定义方法,在你的情况下,它可以用来返回一个任意值。例如:

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

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

const doc = new queueProcess;
doc.Everest();
// 8848.86

字符串

相关问题