猫鼬—如何动态更改给定集合的查询?

时间:2019-09-29 01:29:30

标签: mongoose

对于我在文档和示例中可以阅读的内容,我只能在注册模型时选择给定的集合,例如

const Logs = mongoose.model('Logs', LogsSchema, 'myCollection');

但是当我在每个环境中有不同的集合时,例如:

Logs-Production
Logs-Stage
Logs-Dev

如何在同一应用程序实例中查询正确的集合?

我打电话给Find时尝试尝试注册

  

“编译后无法覆盖Logs模型。”

const find = options => {
   const Logs = mongoose.model('Logs', LogsSchema, 'Logs-' + options.env);
   Logs.find({name: options.name}, (err, docs) => {
     console.log(JSON.stringify(docs, null, 4);
   });
}

但是我找不到一种方法可以事先检查该集合是否已在给定集合中注册...

是否可以在正确的集合上执行find()查询而没有任何注册错误?

1 个答案:

答案 0 :(得分:0)

您是否看过猫鼬的Discriminator功能?使用此功能,您可以创建基础日志对象,并从基础对象扩展Prod / Dev / UT。猫鼬会在内部将这些类型分开,并为您的查询选择确切的一种...

Simple example here ...

干杯!

SG