嵌套在其他方案ref/default中的Mongoose方案不起作用

lkaoscv7  于 2022-12-29  发布在  Go
关注(0)|答案(1)|浏览(112)

我有计划..

....
const translateLanguageSchema = new mongoose.Schema({
 
  order:
  {
    orderBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', default: '5ebsb5fc538d873da8911ec7' },
  }
....

并且当我在下面的不同架构中使用此架构时(同一文件)

polish: translateLanguageSchema,
german: translateLanguageSchema,

Mongoose不会在mongodb数据库中保存默认的用户ID。
但是如果我这样做

polish: 
 order:
  {
    orderBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', default: '5ebsb5fc538d873da8911ec7' },
  }

它完美地工作。
有什么办法可以解决这个问题吗?我只是想避免代码重复。
我尝试删除const。我知道我可以将其添加到save()中,但我只想使用default(),而不将其添加到查询中。

n1bvdmb6

n1bvdmb61#

据我所知,你只能在一个给定的"schema"中示例化一个mongoose Schema,在我的例子中,我创建了一些简单的vanilla js对象,然后我将它们添加到我的最终schema中以避免DRY原则。

const translateLanguage = {
    order:
    {
        orderBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User', default: '5ebsb5fc538d873da8911ec7' },
    }
};

然后:

YourFinalSchema({
....,
polish: translateLanguage,
german: translateLanguage,
});

相关问题