Mongoose – (MongoDB)中不同集合的相同模式

我正在创build一个应用程序(Express + MongoDB + Mongoose),其中文档自然地按组进行聚类。 每个对数据库的查询只需要访问单个组中的文档。 所以我认为把每个小组分成自己的集合是一个好主意。

现在,我将为每个这些集合使用相同的Schema,因为它们将存储相同types的文档。 我曾经有一个单一的模型对象,因为我曾经拥有一个集合中的所有东西,但是现在我需要多个模型,每个模型一个。

每个请求(使用共享模式)创build一个新的模型对象是一个好主意,还是这太昂贵了? 在这种情况下,什么是一个好的架构决定?

我能想到的最好的方法是在第一次请求一个集合时创build一个模型,然后将模型caching在字典中以便快速访问。

我想最好的方法取决于每个请求创build一个新的模型对象的成本。

谢谢!

模型已经被Mongoosecaching,你可以使用相同的模式对象为多个模型/集合。 所以,只需使用以下代码创build一组模型(启动时):

var mongoose = require('mongoose'); var Schema = mongoose.Schema; var schema = new Schema({...}); var model1 = mongoose.model('model1', schema); var model2 = mongoose.model('model2', schema); 

如果您不想传递model1model2模型实例,则可以通过调用mongoose.model('model1');按需查找它们mongoose.model('model1'); 在你的处理程序中。