我有一個聚合,其中狀態和 id 在查找管道中匹配。在集合中有一些角色,我從 request.query 中得到。如果角色請求為空,我想顯示每個資料。但如果它不為空,我只想顯示角色為例如“用戶”的資料。我擁有的代碼給出了結果。但是當 request.query 為空時,不匹配,結果為空。
我怎樣才能做到這一點?
我目前的比賽階段
{
$match: {
$and: [
{
$expr: { $eq: ["$$id", "$_id"] },
},
{ status: 1 },
],
$or: [{ role: role }],
},
},
uj5u.com熱心網友回復:
您可以放置??JS條件,如果role有值則回傳值,否則為空物件,不需要$or運算子,
{
$match: {
$and: [
{
$expr: { $eq: ["$$id", "$_id"] },
},
{ status: 1 },
role ? { role: role } : {}
]
},
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330479.html
上一篇:(node:31873)UnhandledPromiseRejectionWarning:TypeError:Itemisnotaconstructor
