我正在从事golang项目。我正在使用MongoDB数据库。 我需要使用批量更新功能获取所有文档ID。我正在使用带有以下代码的mgo golang软件包:
dense_rank() over (partition by tt.shop_name order by tt.avg_price desc, category)
我得到这样的输出:
package main
import (
"fmt"
"gopkg.in/mgo.v2/bson"
"gopkg.in/mgo.v2"
)
type QueryStruct struct{
Selector bson.M
Query bson.M
}
func main(){
session, err := mgo.Dial("127.0.0.1")
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
var queries []QueryStruct
for i:=1; i<=400; i++{
var query QueryStruct
query.Selector = bson.M{"country":"US"}
query.Query = bson.M{"$set":bson.M{"serial_number":i}}
queries = append(queries, query)
}
c := session.DB("test").C("people")
bulk := c.Bulk()
for _, queryVal := range queries{
bulk.UpdateAll(queryVal.Selector, queryVal.Query)
}
data, err := bulk.Run()
fmt.Println(data)
fmt.Println(err)
}
如果任何条目未更新,我需要获取更新的文档ID来维护日志。
有人可以建议我如何实现这一目标吗?