これは私の役割です:
リーリー
これが私のモデルです:
func (r *rest) createpost(c *gin.context) { var postcollection = database.getcollection(r.db, "godb") ctx, cancel := context.withtimeout(context.background(), 10*time.second) post := new(model.post) defer cancel() if err := c.shouldbindjson(&post); err != nil { c.json(http.statusbadrequest, gin.h{"message": err}) log.fatal(err) return } // validation if err := post.validate(); err == nil { c.json(http.statusok, gin.h{"input": "valid"}) } else { c.json(http.statusbadrequest, gin.h{"input validation": err.error()}) return } postpayload := model.post{ id: primitive.newobjectid(), title: post.title, article: post.article, } result, err := postcollection.insertone(ctx, postpayload) if err != nil { c.json(http.statusinternalservererror, gin.h{"message": err}) return } c.json(http.statusok, gin.h{"message": "posted succesfully", "data": map[string]interface{}{"data": result}}) }
idのキーは
idです。
bson タグを使用してキー
_id を生成する必要があります。
リーリー
ドキュメントです :
構造体をマーシャリングする場合、対応する bson 要素のキーを生成するために、各フィールドは小文字になります。たとえば、「foo」という名前の構造体フィールドはキー「foo」を生成します。これは構造体タグを介してオーバーライドできます (例:bson:"foofield" キー「foofield」を生成する)。
_id という名前の要素が含まれていない場合、ドライバーは自動的に要素を追加します (
ソース コード を参照):
リーリー
リーリー
そしてデータベースに作成されたドキュメント:リーリー
以上がMongoDB への公開時に追加の「id」フィールドが生成されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。