MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consulta de fatia do MongoDB em golang


Com Collection.Find() você só pode especificar o filtro. Mas o que você tem é uma projeção:
{"contr":{$slice:[0,10]}

As projeções podem ser especificadas usando Query.Select() , então é assim que você pode aplicar um $slice em projeção:
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

Observe também se a propriedade pela qual você filtra é "id" ou é apenas um erro de digitação e deve ser "_id" . Se for o último, você também pode usar Collection.FindId() para consultar por ID do documento:
err := DB.C("con").FindId(ID).Select(bson.M{
    "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)