Javascript 如何在mongodb中加入三个集合?

Javascript 如何在mongodb中加入三个集合?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在使用几乎纯JS代码来连接MongoDB中的三个集合,我相信使用mongoose查询一定会有更简单的方法 这是我的情况;我有一个可以创建和销售文档的卖家。我希望我的卖家能够看到他出售的文件 这是我的订单集合架构: const OrderSchema=new mongoose.Schema({ //... 用户:{ 类型:mongoose.Schema.ObjectId, ref:'用户', 必填项:true }, 文件:[ { 文件:{ 类型:mongoose.Schema.ObjectI

我正在使用几乎纯JS代码来连接MongoDB中的三个集合,我相信使用mongoose查询一定会有更简单的方法

这是我的情况;我有一个可以创建和销售文档的卖家。我希望我的卖家能够看到他出售的文件

这是我的订单集合架构:

const OrderSchema=new mongoose.Schema({
//...
用户:{
类型:mongoose.Schema.ObjectId,
ref:'用户',
必填项:true
},
文件:[
{
文件:{
类型:mongoose.Schema.ObjectId,
参考:“文件”,
必填项:true
},
价格:{
类型:数字,
必需:[正确,'需要价格']
}
}
],
//...

});经过一些研究和阅读文档(20个ich选项卡)后,这是最终代码(可能需要一些清理):

let id=mongoose.Types.ObjectId(req.uid);
常量命令=等待命令
.合计([
{$unwind:'$documents'},
{
$lookup:{
从:“文件”,
localField:“documents.document”,
foreignField:“\u id”,
as:“文件”
}
},
{$match:{'document.author':id},
{$project:{用户:1,交付电子邮件:1,创建日期:1,文档标题:'$document.title',文档ID:'$documents.document',文档价格:'$documents.price'},
{$sort:{'createdAt':-1}
])
json({success:true,data:orders})