首页 > 编程知识 正文

duplicate object key,getparametermap

时间:2023-05-04 12:43:06 阅读:156602 作者:2180

记录一次读取源代码的过程。

在使用golang mongo查询的过程中,使用了sort进行排序,并使用了多个字段进行排序。

结果返回multi-keymappassedinfororderedparametersort错误。

我先在网上查了一下这个错误,发现没有人遇到过这样的问题。

查询使用了查找方法和排序,如下图所示。

我看了源代码。

在源代码中找到Find ()方法。

Find (导航到该方法并分析sort参数。

从源代码的角度来看,确实不支持对多个字段进行排序。

但是,实际上支持mongoDB,并且对多个字段进行了排序。

稍后仔细想想,我发现golang不支持多字段排序的原因。 无法支持多字段排序,因为地图本来就是无序的,即使地图上有多个字段也是无序的。

//mongo驱动程序源代码//排序操作,多密钥映射错误问题搜索。 //从源代码的角度看,不支持多种排序条件//突然发现为什么不支持多种条件的排序。 map本来就是无序的,在map中有多个字段的情况下也是无序的。 因此,不支持多字段排序。 paramnamestring([]byte,error ) ifval==nil ) returnnil,fmt.errorf(errnildocument ) }if bs,ok 3360=var ing ok map allowed { ref value :=reflect.value of (val ) if refValue.Kind )==reflect.Map refValue.Len )1{fmt.priind fmt.errorf (errmapfororderedargument (param name ) ) }fmt.printf ) refvalue3360%v(n ),refvalue; //todo(skriptble ) : useapooloftheseinstead.//buf :=make ([ ] byte,0,256 )/b,err 3360=nil {//ruf :

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。