我试图使用 $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)我的查询有什么问题?是否有任何语法错误?
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
因为 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)
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消