我正在嘗試使用結(jié)構(gòu)更新/替換 mongodb 文檔,但我一直在獲取err: update document must contain key beginning with '$'collection := r.client.Database(database).Collection(greetingCollection)payment.MongoID = objectid.New()filter := bson.NewDocument(bson.EC.String("id", payment.ID))_, err := collection.UpdateOne(ctx, filter, payment)return err
2 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
我相信接受的答案對(duì)我不起作用,因?yàn)槲艺谑褂迷?code>go.mongodb.org/mongo-driver軟件包。有了這個(gè)包,語(yǔ)法就更簡(jiǎn)單了:
update := bson.M{ "$set": yourDocument, } collection.UpdateOne(ctx, filter, update)

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
您應(yīng)該提供更新語(yǔ)句而不是文檔作為該Collection.UpdateOne
方法的第三個(gè)參數(shù)。例如:
update := bson.NewDocument(
? ? bson.EC.SubDocumentFromElements(
? ? ? ? "$set",
? ? ? ? bson.EC.Double("pi", 3.14159),
? ? ),
)
collection.UpdateOne(ctx, filter, update)
在MongoDB 文檔中查看有關(guān)可用更新運(yùn)算符的更多信息(鍵以“$”開(kāi)頭)。
- 2 回答
- 0 關(guān)注
- 372 瀏覽
添加回答
舉報(bào)
0/150
提交
取消