我一直在尝试概括以下代码以避免冗余代码重复。
func (db *MongoController) extractManyByIDFromDB(dbName string, collectionName string, pResults interface{}, limit int64) (int, error) {
collection := db.client.Database(dbName).Collection(collectionName)
findOptions := options.Find()
findOptions.SetLimit(limit)
// Passing bson.D{{}} as the filter matches all documents in the collection
cur, err := collection.Find(context.TODO(), bson.D{{}}, findOptions)
if err != nil {
log.Print(err)
}
// Finding multiple documents returns a cursor
// Iterating through the cursor allows us to decode documents one at a time
i := 0
for cur.Next(context.TODO()) {
// create a value into which the single document can be decoded
var err error
err = cur.Decode(pResults) //pResults is some *[]MyStruct
if err != nil {
log.Fatal(err)
}
i++
}
if err := cur.Err(); err != nil {
log.Fatal(err)
}
cur.Close(context.TODO())
return i, err
}
我正在尝试填充由参数给出的数组数据,现在代码无法成功解码。pResultscur.Decode()MyStruct
目标是不仅能够通过分析和我的,而不必为我想从数据库中提取的每个新结构单独开发。MyStructMyOtherStructMyAmazingStructextractManySpecificStructByIDFromDB
我试图在网上搜索结果,但最终没有一个搜索工作。
提前致谢!
白板的微信
相关分类