简体   繁体   English

呼叫Find mgo的参数过多

[英]too many arguments in call to Find mgo

I was trying to search a collection with multiple field conditions using $elemMatch operator. 我试图使用$ elemMatch运算符搜索具有多个字段条件的集合。 Then I encountered an error "too many arguments in call to c.Find". 然后,我遇到一个错误“调用c.Find的参数太多”。 Document structure is as follows:- 文件结构如下:

{
    "_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
        }
    ]
}

My query is as follows:- 我的查询如下:

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)

What is wrong with my query? 我的查询出了什么问题? Is it any syntax error? 有语法错误吗?

Because c.Find( https://godoc.org/gopkg.in/mgo.v2#Collection.Find ) only allow one param 因为c.Find( https://godoc.org/gopkg.in/mgo.v2#Collection.Find )仅允许一个参数

You can try 你可以试试

query := bson.M{
    "company_name": "bank",
    "process": bson.M{
        "$elemMatch": bson.M{"process.process_name":"Converted"}
    }
}
err := c.Find(query).Sort("-id").All(&results)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM