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

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

在 mongo go 驅(qū)動程序中使用 DBRef

在 mongo go 驅(qū)動程序中使用 DBRef

Go
滄海一幻覺 2023-08-14 14:27:30
我想使用DBrefwithgo-mongo-driver但我找不到任何關(guān)于它的例子。我怎樣才能實現(xiàn)這個目標(biāo)?我之前使用過 Spring Data Mongodb,您可以在類中指示 Dbref,如下所示:@DBRef 私人電子郵件地址電子郵件地址;有沒有人能舉出一個好的例子?提前致謝
查看完整描述

1 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗 獲得超5個贊

我之前使用過 Spring Data Mongodb,你可以在類中指定 Dbref

除非您有令人信服的理由使用DBRef?,否則您應(yīng)該避免使用它,或者改用手動引用。

對于您發(fā)布的示例,您絕對應(yīng)該EmailAddress首先嘗試將 的值嵌入到文檔中。使用嵌入式模型應(yīng)該可以避免您為了檢索值而兩次查詢數(shù)據(jù)庫EmailAddress。

type User struct?

{

? ? ID? ? ? ? ? ?primitive.ObjectID `json:"ID" bson:"_id"`

? ? UserName? ? ?string? ? ? ? ? ? ?`json:"username"`

? ? EmailAddress Email? ? ? ? ? ? ? `json:"emailAddress"`

}


type Email struct?

{

? ? ?PrivateEmail? ? ?string? ? ? `json:"private"`

? ? ?BusinessEmail? ? string? ? ? `json:"business"`

}

在某些情況下,您確實需要將相關(guān)信息存儲在單獨的文檔中,您應(yīng)該使用手動參考。您可以通過將_id一個文檔的字段保存到另一文檔中作為參考來完成此操作。然后您的應(yīng)用程序可以運行第二個查詢來返回相關(guān)數(shù)據(jù)。從 MongoDB v3.4+ 開始,您可以使用$lookup或$graphLookup來執(zhí)行查找。

MongoDB Go 驅(qū)動程序不直接支持DBRef類型。Spring Data MongoDB 提供了一個方便的輔助方法來自動形成查詢DBRef,盡管在幕后它只是查詢數(shù)據(jù)庫兩次。

說了以上所有內(nèi)容,并且存在一些您需要的特殊邊緣情況,您可以構(gòu)建自己的結(jié)構(gòu),如下例所示:

type User struct?

{

? ? ID? ? ? ? ? ? ? ?primitive.ObjectID? `json:"ID" bson:"_id"`

? ? UserName? ? ? ? ?string? ? ? ? ? ? ? `json:"username"`

? ? EmailAddress? ? ?DBRef? ? ? ? ? ? ? ?`json:"emailAddress"`

}


type DBRef struct {

? ?Ref interface{}? ?`bson:"$ref"`

? ?ID? interface{}? ?`bson:"$id"`

? ?DB? interface{}? ?`bson:"$db"`

}

再次請注意,MongoDB 驅(qū)動程序不會自動解析DBRef. 驅(qū)動程序之上可能有框架或幫助程序可以提供自動引用解析(通過執(zhí)行第二個查詢來查找值)。


查看完整回答
反對 回復(fù) 2023-08-14
  • 1 回答
  • 0 關(guān)注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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