gpt4 book ai didi

mongodb - 如何使用golang更新mongodb中文档数组中的多个嵌套字段

转载 作者:行者123 更新时间:2023-12-01 22:23:00 25 4
gpt4 key购买 nike

我想使用_id和clientID更新文档CLIENTDATA之一作为筛选键,我该如何更新它,并且它们是通过聚合的任何方法。如何使用id和clientID作为过滤器将swapnil名称更新为其他名称

//UpdateClient is used to update clientData
func UpdateClient(Data structure.ClientDataUpdate) bool {
connection := GetConnection()
if connection == nil {
return false
}
collection := connection.Database("IAGENT").Collection("CLIENTDATA")
filter := bson.M{"$and": []interface{}{bson.M{"_id": Data.ID}, bson.M{"clientData.clientID": Data.ClientID}}}
update := bson.M{"$set": bson.M{"clientData.name": Data.Name, "clientData.policy": Data.Policy, "clientData.expiryDate": Data.ExpiryDate,"clientData.metaData":Data.Metadata,"clientData.mobile":Data.Phone}}
_, err := collection.UpdateOne(context.TODO(), filter, update)
if err != nil {
fmt.Println("updating the Data", err)
return false
}
return true
}

这是上面集合的我的MongoDB数据库的图像。

enter image description here

最佳答案

您需要使用positional operator来更新数组中的元素,因此应该使用 clientData。$。name 来代替 clientData.name

//UpdateClient is used to update clientData
func UpdateClient(Data structure.ClientDataUpdate) bool {
connection := GetConnection()
if connection == nil {
return false
}
collection := connection.Database("IAGENT").Collection("CLIENTDATA")
filter := bson.M{"$and": []interface{}{bson.M{"_id": Data.ID}, bson.M{"clientData.clientID": Data.ClientID}}}
update := bson.M{"$set": bson.M{"clientData.$.name": Data.Name, "clientData.$.policy": Data.Policy, "clientData.$.expiryDate": Data.ExpiryDate,"clientData.$.metaData":Data.Metadata,"clientData.$.mobile":Data.Phone}}
_, err := collection.UpdateOne(context.TODO(), filter, update)
if err != nil {
fmt.Println("updating the Data", err)
return false
}
return true
}

关于mongodb - 如何使用golang更新mongodb中文档数组中的多个嵌套字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61864861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com