首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeORM MongoDB填充

TypeORM MongoDB填充
EN

Stack Overflow用户
提问于 2020-10-11 00:14:32
回答 1查看 1.7K关注 0票数 2

我目前正在使用NestJS,并在TypeORM中使用MongoDB,但我在Mongoose中找不到类似于.populate()方法的东西,有没有办法使用TypeORM,或者我应该坚持使用Mongoose?

例如,这是我用Express + Mongoose创建的路由,我想用NestJS +TypeORM重新创建它:

代码语言:javascript
复制
route.get('/:slug', async (req, res) => {
    const collection = await Collection.findOne({slug: req.params.slug}).populate('products');

    res.json(collection);
});
EN

回答 1

Stack Overflow用户

发布于 2020-10-11 01:40:44

TypeORM中,有一个名为relations的东西,您可以使用它来填充来自其他(相关)集合的文档。

下面是TypeORM文档中的一个示例:

代码语言:javascript
复制
createConnection(/*...*/).then(async connection => {
 
    /*...*/
    let photoRepository = connection.getRepository(Photo);
    let photos = await photoRepository.find({ relations: ["metadata"] });
 
}).catch(error => console.log(error));

你可以在TypeORM docs上阅读更多关于它的信息。

根据你在TypeORM中设计集合/模式的方式,你的查询可能是这样的,我没有尝试过这个查询,但你可以让它像这样工作:

代码语言:javascript
复制
Collection.find({slug: req.params.slug}, {relations : ['products']});

注意,还有像.innerJoinAndSelect.leftJoinAndSelect这样的函数,您可以将它们与QueryBuilder(.createQueryBuilder)一起使用,并填充来自其他集合的文档,比如mongoose .populate()

我建议您阅读TypeORM,这里也有许多示例,它将帮助您构建所需的查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64295578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档