1 回答
TA貢獻1875條經驗 獲得超5個贊
我試圖找到嵌入數組中插入的最后一個文檔,這樣我就可以在不知道它的索引的情況下檢索最后一個數組索引中的文檔。有可能嗎?
您可以通過從數組長度派生來找到最后一個數組索引。使用您的示例:
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所附上一個文件的值并將其保留為新文件的總價值
根據您的用例,您可以嘗試執行兩個數據庫操作:
ATotal從集合中獲取最后一個值。
推送具有新值的新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 原子性和事務以及用于原子操作的模型數據。
另一方面,您似乎正在嘗試做一些與CQRS 設計模式相關的事情。此設計模式可能有助于計算您的年假用例。另請參閱使用 MongoDB 進行采購
- 1 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
