sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB divide la consulta en golang

Con Collection.Find() sólo puede especificar el filtro. Pero lo que tienes es una proyección:

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

Las proyecciones se pueden especificar usando Query.Select() , así es como puedes aplicar un $slice en proyección:

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

También tenga en cuenta si la propiedad por la que filtra es "id" o es solo un error tipográfico y debería ser "_id" . Si es lo último, también puede usar Collection.FindId() para consultar por ID de documento:

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