完全虚拟的Mongoose模式,保存在内存中,不会持久化

找不到任何文档或post,这可能表明我正在尝试做一些不正确的事情。

是否有可能使用完全虚拟的Mongoose模式,即没有持久化到数据库?

我有一些模型,其中大部分是坚持数据库,但是想要一致地包括模型,只保留在内存中,不坚持?

我能想到的最接近的是这些行,但是它仍然会在数据库中只保留一个id属性的对象。 这里简化:

// access_token.js var schema = mongoose.Schema({}); schema.virtual('token').get(function() { return 'abcde12345'; }); module.exports = mongoose.model('AccessToken', schema); 

这样做的想法是抽象模型,以便应用程序的使用部分不需要知道模型是持久化到数据库还是只保留在内存中。 当然,这可以通过创build与普通对象相同的对象和方法来实现,但是这种方法很快就会变得重复。

你可以覆盖(猴子补丁)保存数据(例如.save )的Mongoose方法,但我怀疑你想要做什么是困难的/不可能的。

你可以看一下sift.js,这是一个查询库来进行内存查询。

https://github.com/crcn/sift.js

您可以为此模型设置一个始终失败的预中间件 。

 schema.pre('save', function (next) { next(new Error('This can't be saved!'); }); 

所以你会知道你什么时候做错了。