Mongodb 不同的结构类型将切片作为go中函数的参数
我一直在尝试推广以下代码,以避免重复代码Mongodb 不同的结构类型将切片作为go中函数的参数,mongodb,go,Mongodb,Go,我一直在尝试推广以下代码,以避免重复代码 func(db*MongoController)extractmanybydfromdb(dbName字符串,collectionName字符串,pResults接口{},limit int64)(int,error){ 集合:=db.client.Database(dbName).collection(collectionName) findOptions:=选项。查找() findOptions.SetLimit(限制) //将bson.D{{}作为
func(db*MongoController)extractmanybydfromdb(dbName字符串,collectionName字符串,pResults接口{},limit int64)(int,error){
集合:=db.client.Database(dbName).collection(collectionName)
findOptions:=选项。查找()
findOptions.SetLimit(限制)
//将bson.D{{}作为筛选器传递与集合中的所有文档匹配
cur,err:=collection.Find(context.TODO(),bson.D{{},findOptions)
如果错误!=零{
日志打印(错误)
}
//查找多个文档将返回一个游标
//通过遍历光标,我们可以一次解码一个文档
i:=0
对于cur.Next(context.TODO()){
//创建一个可将单个文档解码为的值
变量错误
err=cur.Decode(pResults)//pResults是一些*[]我的结构
如果错误!=零{
log.Fatal(错误)
}
我++
}
如果错误:=cur.err();错误!=nil{
log.Fatal(错误)
}
cur.Close(context.TODO())
我回来了,呃
}
我试图填充参数pResults
给出的数组数据,现在代码无法使用cur.Decode()
到MyStruct
进行解码
目标是不仅能够通过MyStruct,而且能够分析MyTherStruct和myMyAmazingStruct
,而不必为我要从数据库中提取的每个新结构开发单独的提取ManysSpecificStructByIDFromDB
我试图在网上搜索结果,但最终没有一个搜索成功
提前谢谢 使用
使用切片长度确定解码的元素数
var results []Example
err := c.extractManyByIDFromDB(db, coll, &results, limit)
if err != nil {
// handle error
}
fmt.Println("%d documents extracted", len(results))
谢谢,这真的解决了我的问题
var results []Example
err := c.extractManyByIDFromDB(db, coll, &results, limit)
if err != nil {
// handle error
}
fmt.Println("%d documents extracted", len(results))