【发布时间】:2020-11-05 05:23:58
【问题描述】:
我有这样的查询
const papers = await Paper.aggregate([
{ $match: filter },
{
$lookup: {
"from": "reviews",
"localField": "review",
"foreignField": "_id",
"as": "review"
}
},
{ $unwind: "$review" },
{ $match: { "review.reviews.reviewStatus": "SUBMITTED" } },
])
返回类似的结果
[
{
_id: 5f721ca3909430bf5bf38133,
manuscript: {
keywords: [Array],
title: 'Viverra aliquet eget sit amet tellus cras adipiscing enim. ',
abstract: 'Ultricies leo integer',
authors: [Array],
fundingInfo: ''
},
review: {
_id: 5f721ca5909430bf5bf38138,
reviews: [Array]
}
}
]
review 对象内的 reviews 数组包含不同的审稿人对这篇论文的审阅。 reviewStatus 会根据评论者的评论进行更改。
{
_id: 5f721ca5909430bf5bf38138,
reviews: [
{
invitationStatus: 'ACCEPTED',
reviewType: 'MINOR_REVISION',
reviewStatus: 'SUBMITTED',
_id: 5f9d2fa9909430bf5bf3814a
},
{
invitationStatus: 'PENDING',
reviewType: 'MAJOR_REVISION',
reviewStatus: 'SAVED',
_id: 5f9d38223357c83460cb77df
},
{
invitationStatus: 'ACCEPTED',
reviewType: 'MINOR_REVISION',
reviewStatus: 'SUBMITTED',
_id: 5f9d39af3357c83460cb77e2,
}
]
}
现在,我只想获取那些具有两个或多个 reviewStatus 值 SUBMITTED
的论文【问题讨论】:
标签: node.js mongodb mongoose aggregation-framework