12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- import (
- "mongodb"
- "qfw/util"
- "sync"
- )
- var (
- Mgo, Mgo1 *mongodb.MongodbSim
- )
- func init() {
- //Mgo = &mongodb.MongodbSim{
- // MongodbAddr: "192.168.3.207:29092",
- // Size: 10,
- // DbName: "wjh",
- //}
- //Mgo.InitPool()
- Mgo1 = &mongodb.MongodbSim{
- MongodbAddr: "172.17.4.187:27082,172.17.145.163:27083", // 172.17.4.187:27082,172.17.145.163:27083
- Size: 15,
- DbName: "mixdata",
- UserName: "SJZY_RWESBid_Other",
- Password: "SJZY@O17t8herB3B",
- }
- Mgo1.InitPool()
- }
- func main() {
- sess := Mgo1.GetMgoConn()
- defer Mgo1.DestoryMongoConn(sess)
- ch := make(chan bool, 3)
- wg := &sync.WaitGroup{}
- field := map[string]interface{}{"bid_contracttype": -1, "bid_unittype": -1, "bid_projectname": -1, "bid_purchasing": -1, "bid_area": -1}
- query := sess.DB("mixdata").C("qyxy_tmp").Find(nil).Select(field).Iter()
- count, taskcount := 0, 0
- for tmp := make(map[string]interface{}); query.Next(&tmp); count++ {
- if count%50 == 0 {
- util.Debug("current ---", count, taskcount)
- }
- ch <- true
- wg.Add(1)
- go func(tmp map[string]interface{}) {
- defer func() {
- <-ch
- wg.Done()
- }()
- name := util.ObjToString(tmp["company_name"])
- info, _ := Mgo1.FindOne("qyxy_std", map[string]interface{}{"company_name": name})
- if len(*info) > 0 {
- Mgo1.Save("qyxy_oprd", *info)
- Mgo1.UpdateById("qyxy_tmp", tmp["_id"], map[string]interface{}{"$set": map[string]interface{}{"exist": true}})
- }
- }(tmp)
- tmp = make(map[string]interface{})
- }
- wg.Wait()
- util.Debug("over ---", count, taskcount)
- c := make(chan bool, 1)
- <-c
- }
|