MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB di Go dengan mgo, operator dengan bson.M / bson.D selalu mendapat kesalahan sintaks

bson.M adalah tipe peta, jadi bson.M{ ... } adalah literal peta . Jika pasangan nilai kunci ditulis dalam beberapa baris, setiap baris harus diakhiri dengan koma. Untuk detailnya, lihat Bagaimana cara memecahkan baris kode yang panjang di Golang?

Juga tidak ada literal "antarmuka", jatuhkan itu. Nilai interface{} type dapat menampung / membungkus nilai apa pun, termasuk bson.M nilai. Dan interface{} pembuatan nilai dilakukan secara otomatis, Anda bahkan tidak memerlukan jenis konversi .

Sintaks yang benar:

convIter := Session.Copy().DB("").C("convs").Find(bson.M{
    "conversationStatus": bson.M{
        "$ne": "DESTROYED",
    },
}).Iter()

Demikian pula, jika Anda menggunakan bson.D type (yang merupakan irisan), baris yang tidak diakhiri dengan kurung tutup literal harus diakhiri dengan koma, mis.:

d := bson.D{
    {Name: "fieldA", Value: 1},
    {Name: "fieldB", Value: "running"},
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Tidak dapat menemukan codec untuk kelas io.github.ilkgunel.mongodb.Pojo

  2. Gagal memuat ekstensi c++ bson, menggunakan versi JS murni

  3. konversi stempel waktu UTC ke stempel waktu zona lainnya

  4. Aset Prakompilasi Heroku Gagal

  5. Cara memperbarui dokumen di MongoDB menggunakan ObjectID di Java