MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Slice-Abfrage in golang

Mit Collection.Find() Sie können nur den Filter angeben. Aber was Sie haben, ist eine Projektion:

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

Projektionen können mit Query.Select() angegeben werden , so können Sie also ein $slice anwenden in Projektion:

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

Achten Sie auch darauf, ob die Eigenschaft, nach der Sie filtern, "id" ist oder ist nur ein Tippfehler und sollte "_id" sein . Im letzteren Fall können Sie auch Collection.FindId() zur Abfrage nach Dokument-ID:

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