mongoose 在Nest.Js的useFactory中使用其他模型

rm5edbpk  于 2023-04-06  发布在  Go
关注(0)|答案(2)|浏览(120)

如何在useFactory中使用其他模型?
我想在保存前或保存后通过其他模型进行查询。但我不知道如何在@nestjs/mongoose中实现。
检查下面的示例代码以供参考。

MongooseModule.forFeatureAsync([
      {
        name: Post.name,
        useFactory: () => {
          PostSchema.pre('save', () => {
            // Use other mode for query
            // For Examole
            // UserModel.findOne({})
            console.log('Hello from pre save');
          });
          return PostSchema;
        },
      },
    ]),
iqxoj9l9

iqxoj9l91#

您可以在使用工厂时注入所需的模型。例如:

MongooseModule.forFeatureAsync({
    name: Post.name,
    inject: [getModelToken(User.name)],
    import: [MongooseModule.forFeature(User.name)],
    useFactory: (userModel) => {
        PostSchema.pre('save', () => {
            // Use other model for query
            // For Examole
            userModel.findOne({})
            console.log('Hello from pre save');
        });
        return PostSchema;
    }
}
dfuffjeb

dfuffjeb2#

也许有一个打字错误与@Agus Neira答案,我认为正确的是:

MongooseModule.forFeatureAsync({
name: Post.name,
inject: [getModelToken(User.name)],
import: [
    MongooseModule.forFeature([{name: User.name, schema: UserSchema}])// Should be arr
], 
useFactory: (userModel) => {
    PostSchema.pre('save', () => {
        // Use other model for query
        // For Examole
        userModel.findOne({})
        console.log('Hello from pre save');
    });
    return PostSchema;
}

}

相关问题