第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

需要在 MongoDB 和 golang(mgo) 中包含 $each 和 $position

需要在 MongoDB 和 golang(mgo) 中包含 $each 和 $position

Go
楊__羊羊 2022-03-03 16:11:32
1.在后端我使用go lang,對于數(shù)據(jù)庫我使用mongoDB。我試圖找到插入到嵌入數(shù)組中的最后一個(gè)文檔,這樣我就可以在不知道它的索引的情況下檢索最后一個(gè)數(shù)組索引中的文檔。有可能嗎?在對此進(jìn)行研究后,我知道這是不可能的。所以我正在考慮使用 $push、$each 和 $position。在這里我可以將位置設(shè)置為 0,這樣新添加的文檔將在 0 中,這樣我就可以使用它來檢索它索引 0。  Here is bson format    {    empid:"L12"    AnnualLeave:[        {        "atotal" : 20,        }    ]    } Here is my schema type (            Employee struct {                EmpId          string                AnnualLeave    []*AnnualLeaveInfo            }             AnnualLeaveInfo struct {                ATotal          int64               }        I use the mgo statement as follows`enter code here` c.Update(bson.M{"empid": "string"}, bson.M{"$push": bson.M{"annualleave":bson.M{"$each":         bson.M{"atotal": 4},"$position":0}}2.請告訴我如何減少所附上一個(gè)文件的ATotal,并將其保留為新文件的總價(jià)值。請幫助我。謝謝
查看完整描述

1 回答

?
慕田峪4524236

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)行采購


查看完整回答
反對 回復(fù) 2022-03-03
  • 1 回答
  • 0 關(guān)注
  • 211 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號