我在 mongo db 中有兩個表,如下所示
表庫存:
| ID | 數數 | 產品編號 |
|---|---|---|
| 0 | 10 | 0 |
| 1 | 0 | 1 |
| 2 | 4 | 0 |
| 3 | 0 | 1 |
餐桌產品:
| ID | 標題 | 庫存ID |
|---|---|---|
| 0 | 測驗 | [0,2] |
| 1 | 測驗 1 | [1,3] |
我想為具有此條件的表產品撰寫查詢==> 如果庫存表中的計數總和大于零的一個產品回傳具有此條件的產品表中的所有資料,否則回傳產品中的所有資料
我想要的輸出:
產品
| ID | 標題 | 庫存ID |
|---|---|---|
| 0 | 測驗 | [0,2] |
因為 productId = 0 的庫存計數為 14,但 productId = 1 的庫存計數為零!
謝謝你幫助我
uj5u.com熱心網友回復:
這是根據您的條件和示例從集合中回傳檔案的一種方法。products
db.products.aggregate([
{
"$lookup": {
"from": "inventories",
"localField": "inventories",
"foreignField": "productId",
"pipeline": [
{
"$group": {
"_id": null,
"sum": {
"$sum": "$count"
}
}
}
],
"as": "inventorySum"
}
},
{
"$match": {
"inventorySum.sum": {
"$gt": 0
}
}
},
{
"$unset": [
"_id",
"inventorySum"
]
}
])
在mongoplayground.net上試試。
結果:
[
{
"id": 0,
"inventories": [
0,
2
],
"title": "test"
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/470250.html
