Эх сурвалжийг харах

修改查询结果断言数组类型

wangchuanjin 4 жил өмнө
parent
commit
d757fe7c34

+ 4 - 1
src/mongodb/mongodb.go

@@ -6,6 +6,7 @@ import (
 	"fmt"
 	"fmt"
 	"log"
 	"log"
 	"math/big"
 	"math/big"
+	"reflect"
 	"runtime"
 	"runtime"
 	"strconv"
 	"strconv"
 	"strings"
 	"strings"
@@ -264,6 +265,8 @@ func (m *MongodbSim) Destroy() {
 
 
 func (m *MongodbSim) InitPool() {
 func (m *MongodbSim) InitPool() {
 	opts := options.Client()
 	opts := options.Client()
+	registry := bson.NewRegistryBuilder().RegisterTypeMapEntry(bson.TypeArray, reflect.TypeOf([]interface{}{})).Build()
+	opts.SetRegistry(registry)
 	opts.SetConnectTimeout(3 * time.Second)
 	opts.SetConnectTimeout(3 * time.Second)
 	opts.SetHosts(strings.Split(m.MongodbAddr, ","))
 	opts.SetHosts(strings.Split(m.MongodbAddr, ","))
 	//opts.ApplyURI("mongodb://" + m.MongodbAddr)
 	//opts.ApplyURI("mongodb://" + m.MongodbAddr)
@@ -277,7 +280,7 @@ func (m *MongodbSim) InitPool() {
 	}
 	}
 	ms := strings.Split(m.MongodbAddr, ",")
 	ms := strings.Split(m.MongodbAddr, ",")
 	if m.ReplSet == "" && len(ms) > 1 {
 	if m.ReplSet == "" && len(ms) > 1 {
-		m.ReplSet = "qfws"
+		//m.ReplSet = "qfws"
 	}
 	}
 	if m.ReplSet != "" {
 	if m.ReplSet != "" {
 		opts.SetReplicaSet(m.ReplSet)
 		opts.SetReplicaSet(m.ReplSet)

+ 21 - 4
src/mongodb/mongodb_test.go

@@ -37,13 +37,30 @@ func Test_add(t *testing.T) {
 }
 }
 func Test_find(t *testing.T) {
 func Test_find(t *testing.T) {
 	m := &MongodbSim{
 	m := &MongodbSim{
-		MongodbAddr: "192.168.3.207:27092",
+		MongodbAddr: "192.168.3.128:27080",
 		Size:        5,
 		Size:        5,
-		DbName:      "mixdata",
+		DbName:      "qfw",
 	}
 	}
 	m.InitPool()
 	m.InitPool()
-	one, _ := m.FindById("address", "5f27d980acb4d5e9fd0c2c35", nil)
-	log.Println((*one)["_id"])
+
+	sess := m.GetMgoConn()
+	mm := map[string]interface{}{}
+	sess.DB("qfw").C("wcjtest").FindId(StringTOBsonId("5f588430d7f7a15f49e9877d")).One(&mm)
+	log.Println(mm)
+	log.Println(mm["address"].(string))
+	log.Println(mm["name"].([]interface{}))
+	for _, v := range mm["age"].([]interface{}) {
+		log.Println(v.(map[string]interface{}))
+	}
+	log.Println(mm["sex"].(int32))
+	log.Println(mm["jy"].(map[string]interface{}))
+	return
+	one, _ := m.FindById("wcjtest", "5f588430d7f7a15f49e9877d", nil)
+	log.Println((*one)["a_competitor"].(interface{}))
+	log.Println((*one)["name"].([]interface{}))
+	log.Println((*one)["age"].([]interface{}))
+	log.Println((*one)["sex"].(int))
+	log.Println((*one)["jy"].(map[string]interface{}))
 	// log.Println(BsonIdToSId((*one)["_id"]))
 	// log.Println(BsonIdToSId((*one)["_id"]))
 	return
 	return
 	list, _ := m.Find("test", map[string]interface{}{
 	list, _ := m.Find("test", map[string]interface{}{