Rumah > pembangunan bahagian belakang > Golang > Golang dan MongoDB - Saya cuba mengemas kini togol boolean ke mongodb menggunakan golang tetapi mendapat objek itu

Golang dan MongoDB - Saya cuba mengemas kini togol boolean ke mongodb menggunakan golang tetapi mendapat objek itu

WBOY
Lepaskan: 2024-02-14 22:40:15
ke hadapan
1044 orang telah melayarinya

Golang 和 MongoDB - 我尝试使用 golang 将切换布尔值更新为 mongodb,但得到了对象

Kandungan soalan

Saya telah menggunakan React dan Nodejs untuk melaksanakan aplikasi todo. Fungsi pensuisan untuk mengemas kini pangkalan data Mongodb dalam React dan Nodejs adalah seperti berikut:

const toggleChecked = ({ _id, isChecked }) => {
  TasksCollection.update(_id, {
    $set: {
      isChecked: !isChecked
    }
  })
};
Salin selepas log masuk

Saya ingin melaksanakan fungsi togol di Golang untuk mengemas kini medan boolean, tetapi saya mendapat objek, berikut ialah kod golang:

func updateOneMovie(movieId string) model.Netflix {
    id, _ := primitive.ObjectIDFromHex(movieId)
    filter := bson.M{"_id": id}
    update := bson.M{"$set": bson.M{"watched": bson.M{"$not": "$watched"}}}
    var updateResult model.Netflix

    result, err := collection.UpdateOne(context.Background(), filter, update)

    err = collection.FindOne(context.Background(), filter).Decode(&updateResult)

    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(result)
    return updateResult
}
Salin selepas log masuk

Hasil dalam Mongodb dikemas kini sebagai objek dan bukannya boolean. Bagaimanakah saya boleh membetulkannya supaya ia mengemas kini togol boolean?

Penyelesaian

Lulus satu dokumen (cth. bson.Mbson.D) sebagai dokumen kemas kini dan nama dan nilai medan akan ditafsirkan sebagaimana adanya (secara literal).

Menggunakan Saluran Paip Pengagregatan dengan Kemas Kini, anda perlu menghantar tatasusunan sebagai dokumen kemas kini, yang mencetuskan tafsirannya sebagai saluran paip pengagregatan. Ini adalah satu-satunya keperluan. Tatasusunan mungkin mongo.Pipeline, bson.A[]bson.D []bson.M 甚至 []any,没关系,它必须是 Go 中的数组或切片。这些元素可以是 bson.Mbson.D atau sebarang nilai lain yang mewakili dokumen.

Penyelesaian paling mudah:

filter := bson.M{"_id": id}
update := []any{
    bson.M{"$set": bson.M{"watched": bson.M{"$not": "$watched"}}}
}
Salin selepas log masuk

Atas ialah kandungan terperinci Golang dan MongoDB - Saya cuba mengemas kini togol boolean ke mongodb menggunakan golang tetapi mendapat objek itu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan