editor php Banana membawakan pengenalan pemacu GO MongoDB baharu yang meliputi data sedia ada. Sebagai pangkalan data NoSQL yang popular, MongoDB semakin popular di kalangan pembangun. Pemacu baharu ini menyediakan cara yang fleksibel dan cekap untuk memanipulasi data dalam MongoDB. Ia menyokong pelbagai operasi pertanyaan dan kemas kini sambil turut menyediakan ciri lanjutan seperti pemprosesan transaksi dan pengagregatan data. Dengan menggunakan pemacu ini, pembangun boleh berinteraksi dengan mudah dengan MongoDB dalam projek GO, membolehkan pembangunan pesat dan prestasi tinggi. Sama ada projek baharu atau sedia ada, pemacu ini menyediakan pembangun pengalaman manipulasi data yang lebih baik. Sama ada anda seorang pemula atau pembangun berpengalaman, pemandu ini akan menjadi pilihan terbaik anda.
Saya menggunakan go-fiber
并使用 mongodb
pemandu mongodb go.
Saya hanya mahu mengemas kini medan yang diberikan oleh badan. Tetapi ia menimpa data.
func UpdateOneUser(c *fiber.Ctx) error { params := c.Params("id") body := new(models.User) id, err := primitive.ObjectIDFromHex(params) if err != nil { return c.Status(500).SendString("invalid onjectid") } if err := c.BodyParser(&body); err != nil { return c.Status(400).SendString("invalid body") } filter := bson.M{"_id": id} update := bson.M{"$set": bson.M{ "name": body.Name, "username": body.Username, "first_name": body.FirstName, "last_name": body.LastName, "email": body.Email, "phone_number": body.PhoneNumber, "contry": body.Contry, "age": body.Age, "child_accounts": body.ChildAccounts, "groups": body.Groups, }} result, err := db.User.UpdateOne(context.Background(), filter, update) if err != nil { return c.Status(500).SendString("user not found") } fmt.Println(result) return c.JSON(body) }
Jika begini cara pemandu berfungsi, sila beritahu saya cara yang lebih baik untuk mengemas kini dokumentasi.
$set
pengendali akan meliputi semua medan yang anda tentukan, jadi anda perlu membina kenyataan kemas kini anda secara selektif:
fields:=bson.m{} if body.name!="" { fields["name"]=body.name } ... update:=bson.m{"$set":fields}
Beberapa jalan pintas yang boleh anda gunakan:
fields:=bson.M{} add:=func(key,value string) { if value!="" { fields[key]=value } } add("name",body.Name) add("userName",body.UserName)
Atas ialah kandungan terperinci Pemacu MongoDB GO menimpa data sedia ada. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!