diff --git a/core/service.go b/core/service.go index 5fc546e..fe2bfda 100644 --- a/core/service.go +++ b/core/service.go @@ -546,10 +546,10 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) { } platformName := "platform" - links, err := sh.mongoClient.FindAll(CollectionLink, bson.M{ + accDocs, err := sh.mongoClient.FindAll(CollectionAccount, bson.M{ "accid": authInfo.Accid, }, options.Find().SetLimit(sh.MaximumNumLinkAccount).SetProjection(bson.M{ - platformName: 1, + "_id": 1, })) if err != nil { logger.Error("linkinfo failed. CountDocuments err :", err) @@ -557,6 +557,17 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) { return } + var ids primitive.A + for _, accDoc := range accDocs { + ids = append(ids, accDoc["_id"].(primitive.ObjectID)) + } + + links, err := sh.mongoClient.FindAll(CollectionLink, bson.M{ + "_id": bson.M{"$in": ids}, + }, options.Find().SetLimit(sh.MaximumNumLinkAccount).SetProjection(bson.M{ + platformName: 1, + })) + var linkstrs []string for _, link := range links { linkstrs = append(linkstrs, link[platformName].(string))