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

Mengiris kueri MongoDB menjadi golang

Dengan Collection.Find() Anda hanya dapat menentukan filter. Tapi yang Anda miliki hanyalah proyeksi:

{"contr":{$slice:[0,10]}

Proyeksi dapat ditentukan menggunakan Query.Select() , jadi beginilah cara menerapkan $slice dalam proyeksi:

var results []bson.M // Use your own type here, but this works too

err := DB.C("con").Find(bson.M{"id": ID}).Select(bson.M{
    "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)

// handle error

Perhatikan juga apakah properti yang Anda filter adalah "id" atau hanya salah ketik dan seharusnya "_id" . Jika yang terakhir, Anda juga dapat menggunakan Collection.FindId() untuk menanyakan berdasarkan ID dokumen:

err := DB.C("con").FindId(ID).Select(bson.M{
    "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. terlalu banyak file yang terbuka di server mgo go

  2. bagaimana cara menambahkan nilai ke bagian atas array di mongodb?

  3. Mongodb $graphLookup membangun hierarki

  4. $sum dari grup dokumen dan subdocuments oleh $author (MongoDB)

  5. Beban Baca Miring pada Set Replika Mongo