亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

bson.ObjectId 的零值/零值是多少

bson.ObjectId 的零值/零值是多少

Go
守著一只汪 2023-05-15 15:41:11
當我陷入以下情況時,我正在創建一元測試:我有一個具有外鍵的對象。出于某種原因,我需要切換 ID 并且它可以工作。但是,有時,我需要刪除此 ID。如果我有一個 ID,我就會意識到某個動作,如果我沒有,那么什么也不會發生。但是,我找不到將我的設置為bson.ObjectIdasnil或零的方法。有誰知道該怎么做或解決方法?
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

或者你可以使用primitive.NilObjectID

NilObjectID 是 ObjectID 的零值。


查看完整回答
反對 回復 2023-05-15
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

bson.ObjectId 是 string 的別名,因此零值是一個空字符串 ""



查看完整回答
反對 回復 2023-05-15
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

我現在使用的是解決方法:


package your_package


import "github.com/globalsign/mgo/bson"


func GenerateNewGuidHelper() *bson.ObjectId {

? ? id := bson.NewObjectId()

? ? return &id

}


func IsStringIdValid(id string) bool {

? ? return id != "" && bson.IsObjectIdHex(id)

}


func ConvertStringIdToObjectId(id string) *bson.ObjectId {

? ? if id != "" && bson.IsObjectIdHex(id){

? ? ? ? bsonObjectId := bson.ObjectIdHex(id)

? ? ? ? return &bsonObjectId

? ? }

? ? return nil

}


func ConvertStringIdsToObjectIds(ids []string) []*bson.ObjectId {

? ? var _ids []*bson.ObjectId

? ? for _, id := range ids {

? ? ? ? _ids = append(_ids, ConvertStringIdToObjectId(id))

? ? }

? ? return _ids

}


func IsObjectIdValid(id *bson.ObjectId) bool {

? ? return id.Hex() != "" && bson.IsObjectIdHex(id.Hex())

}


func ConvertObjectIdToStringId(id *bson.ObjectId) string? {

? ? if id != nil {

? ? ? ? return id.Hex()

? ? }

? ? return ""

}


func ConvertObjectIdsToStringIds(ids []*bson.ObjectId) []string {

? ? var _ids []string

? ? for _, id := range ids {

? ? ? ? _ids = append(_ids, ConvertObjectIdToStringId(id))

? ? }

? ? return _ids

}

我現在將我的 mongoDB ID 保存為而*bson.ObjectId不是bson.ObjectId. 例子:


package datamodels


import (

? ? "github.com/globalsign/mgo/bson"

)


type User struct {

? ? ID *bson.ObjectId `protobuf:"bytes,1,opt,name=id,proto3" json:"_id,omitempty" bson:"_id,omitempty"`

}

我希望它有所幫助!


查看完整回答
反對 回復 2023-05-15
  • 3 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號