1 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
我試圖找到嵌入數(shù)組中插入的最后一個(gè)文檔,這樣我就可以在不知道它的索引的情況下檢索最后一個(gè)數(shù)組索引中的文檔。有可能嗎?
您可以通過從數(shù)組長度派生來找到最后一個(gè)數(shù)組索引。使用您的示例:
type Employee struct {
EmpId string
AnnualLeave []AnnualLeaveInfo
}
type AnnualLeaveInfo struct {
ATotal int64
}
result := Employee{}
err = c.Find(bson.M{"empid": "example employee ID"}).One(&result)
if err != nil {
log.Fatal(err)
}
lastAnnualTotal:= result.AnnualLeave[len(result.AnnualLeave)-1].ATotal
請告訴我如何減少ATotal所附上一個(gè)文件的值并將其保留為新文件的總價(jià)值
根據(jù)您的用例,您可以嘗試執(zhí)行兩個(gè)數(shù)據(jù)庫操作:
ATotal從集合中獲取最后一個(gè)值。
推送具有新值的新AnnualLeaveInfo文檔。ATotal
// Assuming that EmpId is unique
err = c.Update(bson.M{"empid": result.EmpId},
bson.M{"$push": bson.M{"annualleave": bson.M{"atotal": int(latestAnnualTotal-1)}}})
如果您需要原子更新,請參閱MongoDB 原子性和事務(wù)以及用于原子操作的模型數(shù)據(jù)。
另一方面,您似乎正在嘗試做一些與CQRS 設(shè)計(jì)模式相關(guān)的事情。此設(shè)計(jì)模式可能有助于計(jì)算您的年假用例。另請參閱使用 MongoDB 進(jìn)行采購
- 1 回答
- 0 關(guān)注
- 211 瀏覽
添加回答
舉報(bào)