更新某些用户字段
Updating certain user fields
对我的 API 的请求包含一个 ID(必填)和可选的其他字段,例如姓名、电子邮件和用户名。
{
"id" : "12345",
"name" : "Bob",
"email" : "test@example.com"
}
将请求绑定到结构后 user
如果我的数据库中没有具有该 ID 的用户,我将使用以下方法将其添加到其中:
user.App_id = appId
user.Created_at = (*tools.Timestamp)(&now)
user.Updated_at = (*tools.Timestamp)(&now)
_ = C.Database.C("users").Insert(&user);
但如果有用户,我只想更新请求对象包含的字段,但我不确定如何编写查询。
我的 user
结构使用指针以便我可以检查 nil
值
type user struct {
Id *string `bson:"id" json:"id"`
Name *string `bson:"name" json:"name"`
...
}
我在我的应用程序的其他地方使用的更新查询如下所示:
err := collection("users").Update(bson.M{"id" : "user.Id"},bson.M{"$set": bson.M{"???":"???"}})
但我不确定在这种情况下如何构造查询的后半部分。
注意:我没有使用MongoDB的_id
我相信你应该能够做到这一点
err := collection("users").Update(bson.M{"id" : user.Id},bson.M{"$set": &user})
对我的 API 的请求包含一个 ID(必填)和可选的其他字段,例如姓名、电子邮件和用户名。
{
"id" : "12345",
"name" : "Bob",
"email" : "test@example.com"
}
将请求绑定到结构后 user
如果我的数据库中没有具有该 ID 的用户,我将使用以下方法将其添加到其中:
user.App_id = appId
user.Created_at = (*tools.Timestamp)(&now)
user.Updated_at = (*tools.Timestamp)(&now)
_ = C.Database.C("users").Insert(&user);
但如果有用户,我只想更新请求对象包含的字段,但我不确定如何编写查询。
我的 user
结构使用指针以便我可以检查 nil
值
type user struct {
Id *string `bson:"id" json:"id"`
Name *string `bson:"name" json:"name"`
...
}
我在我的应用程序的其他地方使用的更新查询如下所示:
err := collection("users").Update(bson.M{"id" : "user.Id"},bson.M{"$set": bson.M{"???":"???"}})
但我不确定在这种情况下如何构造查询的后半部分。
注意:我没有使用MongoDB的_id
我相信你应该能够做到这一点
err := collection("users").Update(bson.M{"id" : user.Id},bson.M{"$set": &user})