猿问

调用 Find mgo 的参数太多

我试图使用 $elemMatch 运算符搜索具有多个字段条件的集合。然后我遇到了一个错误“调用 c.Find 的参数太多”。文件结构如下:-


{

    "_id" : ObjectId("56cfca4bf23e4e2859257425"),

    "company_name" : "bank",

    "admin" : {

        "email" : "xyz@bank.com",

        "fullname" : "xyz"

    },

    "process" : [ 

        {

            "process_name" : "Enquiry",

            "processtype" : 0,

            "sortorder" : 0

        }, 

        {

            "process_name" : "Converted",

            "processtype" : 1,

            "sortorder" : 1

        }

    ]

}

我的查询如下:-


colQuerier := bson.M{"company_name": "bank"}

match := bson.M {"process": bson.M {"$elemMatch": bson.M{"process.process_name":"Converted"}}}

err := c.Find(colQuerier,match).Sort("-id").All(&results)

我的查询有什么问题?是否有任何语法错误?


缥缈止盈
浏览 93回答 1
1回答

慕慕森

因为 c.Find( https://godoc.org/gopkg.in/mgo.v2#Collection.Find ) 只允许一个参数你可以试试query := bson.M{    "company_name": "bank",    "process": bson.M{        "$elemMatch": bson.M{"process.process_name":"Converted"}    }}err := c.Find(query).Sort("-id").All(&results)
随时随地看视频慕课网APP

相关分类

Go
我要回答