0
我米試圖建立餘米創建頁面有用的報表,但我米有與格式化數據的問題,看看下面這樣:
db.getCollection('store_spendings').aggregate(
{
"$project": { "spend_dollars": 1, "comments.text": 1, "comments.user.user_id": 1, "store_id": 1 }
},
{
"$lookup":
{
"from": "corporate_spendings",
"localField": "store_id",
"foreignField": "store_id",
"as": "corporate_spendings"
}
},
{
"$match": { "corporate_spendings.region_id": 10816 }
},
{
"$project": { "spend_dollars": "$spend_dollars", "comments": 1, "prior_year_spend_dollars": "$corporate_spendings.prior_year_spend_dollars" } }
)
我得到這樣的結果:
[
spend_dollars: 321312,
comments: [...comments data],
prior_year_spend_dollars: [1231231],
...
]
我得到的只是數據的格式正確的結果是有點過了prior_year_spend_dollars
。我希望它是一個像spend_dollars
而不是數組的字段。我試過使用$first
但顯然它只適用於組。現在我在我的應用中執行這個'第一'操作,但理想情況下它會在db上完成。
我的理想輸出,是這樣的:
[
spend_dollars: 321312,
comments: [...comments data],
prior_year_spend_dollars: 1231231,
...
]
我怎麼能這樣做?
公司發送是否總是一個大小爲0的數組? – Veeram
@Veeram是的。它總是一對一的映射 –
好吧試試'prior_year_spend_dollars:{「$ arrayElemAt」:[「$ corporate_spendings.prior_year_spend_dollars」,0]}'在項目階段 – Veeram