Ormlite Android如何查找插入或更新

Ormlite Android如何查找插入或更新,android,ormlite,foreign-collection,Android,Ormlite,Foreign Collection,我在android应用程序中使用了OSD Ormlite数据库,并使用GSon库解析服务数据。我第一次与服务器同步时遇到问题,我有一个类似地面的模型,模型存储在DB中,服务器端的id字段在模型中重复,类似于相同的id,但模型中有两个对象,当我将这些模型传递给DB(Ormlite)时然后插入一行,当第二次再次与服务器同步时,然后再次执行相同的过程,但当加载项Db时,则异常彻底主键必须是唯一的,我的问题是,如何才能找到模型中的此对象已存在于Db中,现在查询更新或插入 玩家模型 package com

我在android应用程序中使用了OSD Ormlite数据库,并使用GSon库解析服务数据。我第一次与服务器同步时遇到问题,我有一个类似地面的模型,模型存储在DB中,服务器端的id字段在模型中重复,类似于相同的id,但模型中有两个对象,当我将这些模型传递给DB(Ormlite)时然后插入一行,当第二次再次与服务器同步时,然后再次执行相同的过程,但当加载项Db时,则异常彻底主键必须是唯一的,我的问题是,如何才能找到模型中的此对象已存在于Db中,现在查询更新或插入

玩家模型

package com.tt.models;
import java.util.Collection;
import com.google.gson.annotations.SerializedName;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.field.ForeignCollectionField;
import com.j256.ormlite.table.DatabaseTable;
@DatabaseTable(tableName = "Player")
public class Player {
    public static final String BATTING_ID_FIELD_NAME = "batting_id";
    public static final String BOWLING_ID_FIELD_NAME = "bowling_id";
    public static final String TEAM_ID_FIELD_NAME = "team_id";
    @SerializedName("__v")
    @DatabaseField(id = true) 
     private int id;
    @SerializedName("_id")
    @DatabaseField(columnName = "_id")
    private String _id;
    /*@SerializedName("__v")
    @DatabaseField(columnName = "__v",id=true)
    private int __v;*/
    @DatabaseField
    private String battingStyle;
    @DatabaseField
    private String bowlingStyle;
    @DatabaseField
    private String dob;
    @DatabaseField
    private String playingRole;
    @DatabaseField
    private String sname;
    @DatabaseField
    private String fname;
    @SerializedName("gallery")
    @ForeignCollectionField(eager = true, maxEagerLevel = 2)
    private Collection<Gallery> gallery;

    @SerializedName("games")
    @ForeignCollectionField(eager = true)
    private Collection<Game> games;

    /*
     * @DatabaseField(dataType = DataType.SERIALIZABLE) private String[] users;
     */
    /*
     * @DatabaseField(dataType = DataType.SERIALIZABLE) private String[] squad;
     */

    Player() {

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    public String getBattingStyle() {
        return battingStyle;
    }

    public void setBattingStyle(String battingStyle) {
        this.battingStyle = battingStyle;
    }

    public String getBowlingStyle() {
        return bowlingStyle;
    }

    public void setBowlingStyle(String bowlingStyle) {
        this.bowlingStyle = bowlingStyle;
    }

    public String getDob() {
        return dob;
    }

    public void setDob(String dob) {
        this.dob = dob;
    }

    public String getPlayingRole() {
        return playingRole;
    }

    public void setPlayingRole(String playingRole) {
        this.playingRole = playingRole;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getFname() {
        return fname;
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    /*
     * public String[] getUsers() { return users; }
     * 
     * public void setUsers(String[] users) { this.users = users; }
     */

    /*
     * public String[] getSquad() { return squad; }
     * 
     * public void setSquad(String[] squad) { this.squad = squad; }
     */

    public Collection<Gallery> getGallerys() {
        return gallery;
    }

    public void setGallerys(Collection<Gallery> gallery) {
        this.gallery = gallery;
    }

    public Collection<Gallery> getGallery() {
        return gallery;
    }

    public void setGallery(Collection<Gallery> gallery) {
        this.gallery = gallery;
    }

    public Collection<Game> getGames() {
        return games;
    }

    public void setGames(Collection<Game> games) {
        this.games = games;
    }

    public String get_id() {
        return _id;
    }

    public void set_id(String _id) {
        this._id = _id;
    }

    @Override
    public String toString() {
        return "Player [id=" + id + ", _id=" + _id + ", battingStyle="
                + battingStyle + ", bowlingStyle=" + bowlingStyle + ", dob="
                + dob + ", playingRole=" + playingRole + ", sname=" + sname
                + ", fname=" + fname + ", gallery=" + gallery + ", games="
                + games + "]";
    }


}
播放器控制器

package com.tt.controller;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Environment;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.ForeignCollection;
import com.tt.Utilities.Utils;
import com.tt.database.Database;
import com.tt.models.Batting;
import com.tt.models.Bowling;
import com.tt.models.Fielding;
import com.tt.models.Gallery;
import com.tt.models.Game;
import com.tt.models.Ground;
import com.tt.models.Inning;
import com.tt.models.Player;
import com.tt.models.Team;

public class PlayerController {

    private static PlayerController instance;

    private PlayerController() {

    }

    public List<Player> getPlayers() throws SQLException {
        // query for all of the data objects in the database
        return Database.getSingletonInstance(Utils.context).getPlayerDao()
                .queryForAll();
    }

    public static PlayerController getSingletonInstance() {
        if (instance == null) {
            instance = new PlayerController();
        }
        return instance;
    }

    public Player JsonParse(JSONObject jsonObject) {
        Player player = null;
        try {

            GsonBuilder builder = new GsonBuilder();
            Gson gson = builder.create();

            player = gson.fromJson(jsonObject.getString("players")
                    , Player.class);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return player;
    }

    @SuppressWarnings("unused")
    private void writeToSdcard(Player response) {
        try {
            File newFolder = new File(
                    Environment.getExternalStorageDirectory(), "TestFolder");
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }
            try {
                File file = new File(newFolder, "PlayerModel" + ".txt");
                file.createNewFile();
                FileOutputStream fOut = new FileOutputStream(file);
                OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
                myOutWriter.append(response.toString());
                myOutWriter.close();
                fOut.close();
            } catch (Exception ex) {
                System.out.println("ex: " + ex);
            }
        } catch (Exception e) {
            System.out.println("e: " + e);
        }
    }

    public int savePlayerDB(Player player) {
        int Count = 0;
   writeToSdcard(player);
        try {

            ForeignCollection<Batting> battings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("battings");
            ForeignCollection<Bowling> bowlings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("bowlings");
            ForeignCollection<Fielding> fieldings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("Fieldings");
            ForeignCollection<Team> teams = Database
                    .getSingletonInstance(Utils.context).getGameDao()
                    .getEmptyForeignCollection("teams");
            ForeignCollection<Gallery> gallery = Database
                    .getSingletonInstance(Utils.context).getPlayerDao()
                    .getEmptyForeignCollection("gallery");
            /*
             * ForeignCollection<Inning> innings = Database
             * .getSingletonInstance(Utils.context).getBattingDao()
             * .getEmptyForeignCollection("innings");
             */
            /*
             * ForeignCollection<Game> games = Database
             * .getSingletonInstance(Utils.context).getInningDao()
             * .getEmptyForeignCollection("games");
             */


            ForeignCollection<Ground> grounds = Database
                    .getSingletonInstance(Utils.context).getGameDao()
                    .getEmptyForeignCollection("grounds");
            Iterator<Game> iteratorGame = player.getGames().iterator();
            while (iteratorGame.hasNext()) {
                Game game = (Game) iteratorGame.next();
                if (game != null) {
                    game.setPlayer(player);

                    Iterator<Inning> iteratorInning = game.getInnings()
                            .iterator();
                    while (iteratorInning.hasNext()) {
                        Inning inning = (Inning) iteratorInning.next();
                        if (inning != null) {
                            inning.setGame(game);
                            if (inning.getBattings() != null) {
                                Iterator<Batting> iteratorBattings = inning
                                        .getBattings().iterator();

                                while (iteratorBattings.hasNext()) {
                                    Batting batting = (Batting) iteratorBattings
                                            .next();
                                    if (batting != null) {
                                        if (batting.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            batting.setInning(inning);
                                    }
                                }

                                battings.addAll(inning.getBattings());
                            }
                            if (inning.getBowlings() != null) {
                                Iterator<Bowling> iteratorBowlings = inning
                                        .getBowlings().iterator();
                                while (iteratorBowlings.hasNext()) {
                                    Bowling bowling = (Bowling) iteratorBowlings
                                            .next();
                                    if (bowling != null) {
                                        if (bowling.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            bowling.setInning(inning);
                                    }
                                }
                                bowlings.addAll(inning.getBowlings());
                            }
                            if (inning.getFieldings() != null) {
                                Iterator<Fielding> iteratorFieldings = inning
                                        .getFieldings().iterator();

                                while (iteratorFieldings.hasNext()) {
                                    Fielding fielding = (Fielding) iteratorFieldings
                                            .next();
                                    if (fielding != null) {
                                        if (fielding.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            fielding.setInning(inning);
                                    }
                                }
                                fieldings.addAll(inning.getFieldings());
                            }
                        }
                    }
                    // innings.addAll(batting.getInnings());
                    Iterator<Ground> iteratorGround = game.getGrounds()
                            .iterator();
                    while (iteratorGround.hasNext()) {
                        Ground ground = (Ground) iteratorGround.next();
                        if (ground != null) {
                            ground.setGame(game);

                        }
                    }

                    grounds.addAll(game.getGrounds());
                    Iterator<Team> iteratorTeam = game.getTeams().iterator();
                    while (iteratorTeam.hasNext()) {
                        Team team = (Team) iteratorTeam.next();
                        if (team != null) {
                            team.setGame(game);

                        }
                    }
                    teams.addAll(game.getTeams());


                }

            }
            /*
             * Iterator<Bowling> iteratorBowling =
             * player.getBowlings().iterator(); while
             * (iteratorBowling.hasNext()) { Bowling bowling = (Bowling)
             * iteratorBowling.next(); bowling.setPlayer(player);
             * Iterator<Inning> iteratorInning =
             * bowling.getInnings().iterator(); while (iteratorInning.hasNext())
             * { Inning inning = (Inning) iteratorInning.next();
             * if(inning!=null){ inning.setBowling(bowling); Iterator<Game>
             * iteratorGame = inning.getGames().iterator(); while
             * (iteratorGame.hasNext()) { Game game = (Game)
             * iteratorGame.next(); if(game!=null) { game.setInning(inning);
             * Iterator<Ground> iteratorGround = game.getGrounds().iterator();
             * while (iteratorGround.hasNext()) { Ground ground = (Ground)
             * iteratorGround.next(); if(ground!=null) { ground.setGame(game);
             * grounds.addAll(game.getGrounds()); } } } }
             * //innings.addAll(batting.getInnings()); } } }
             */

            /*
             * Iterator<Team> iteratorTeam = player.getTeams().iterator(); while
             * (iteratorTeam.hasNext()) { Team team = (Team)
             * iteratorTeam.next(); team.setPlayer(player); }
             */
            Iterator<Gallery> iteratorGallery = player.getGallerys().iterator();
            while (iteratorGallery.hasNext()) {
                Gallery galleryobj = (Gallery) iteratorGallery.next();
                galleryobj.setPlayer(player);
            }
            // battings.addAll(player.getBattings());
            // bowlings.addAll(player.getBowlings());
            // teams.addAll(player.getTeams());
            gallery.addAll(player.getGallerys());

        } catch (Exception e) {
            e.printStackTrace();
        }
        return Count;
    }
}
来自服务器的GSon

{
  "status": 1,
  "players": {
    "__v": 1,
    "_id": "531029b207987409620000d6",
    "battingStyle": "RHB",
    "bowlingStyle": "RAOS",
    "dob": "2000-02-28T06:15:15.264Z",
    "fname": "Tahir",
    "playingRole": "BWL",
    "sname": "Qadeer Butt",

        "teams": [
          {
            "__v": 30,
            "_id": "52f86b1d31f3b9b205000a58",
            "category": "Veterans",
            "name": "Totally Cricket",
            "rating": 5,
            "teamGender": "Men"
          },
          {
            "__v": 19,
            "_id": "52f9e64231f3b9b205000f36",
            "category": "Under19",
            "name": "Lahore Tiger",
            "rating": 3,
            "teamGender": "Men"
          }
        ],

        "grounds": [
          {
            "__v": 26,
            "_id": "53381c1bf0bce0bd20000002",
            "address": "14835 SE 18th Pl, Bellevue, WA 98007, United States",
            "city": "Bellevue",
            "country": "United States",
            "latitude": "",
            "longitude": "",
            "name": "Robinswood Park"
          },
          {
            "__v": 26,
            "_id": "53381c1bf0bce0bd20000002",
            "address": "14835 SE 18th Pl, Bellevue, WA 98007, United States",
            "city": "Bellevue",
            "country": "United States",
            "latitude": "",
            "longitude": "",
            "name": "Robinswood Park"
          }
        ]

  }
}***

你的问题没有明确你的要求。您需要详细说明。plz我知道现在我更新了代码事实上,您希望存储从服务器获取的所有响应,但其中一些响应具有相同/重复的id。要处理此问题,您需要在数据库中添加一个字段/列,它将是具有自动增量属性的主键。这会解决你的问题。如果你还有任何疑问,我会澄清的。因为问题是你只需要避免/停止得到重复主键的异常。因此,以上一种方法是最好的处理方法。我在我的应用程序中尝试了同样的方法。我已经使用了自动递增主键,当我使用两个地面加载项dB时,在json解析后,在播放器模型中一次也不像两个地面具有相同的\u id时,我只添加了一个,因为id相同,第二次我再次同步服务时,如果id相同,但对象中的某些信息更改如下city now China现在只更新数据库中的记录,不在仅更新数据库更改字段中创建另一项
package com.tt.controller;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Environment;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.ForeignCollection;
import com.tt.Utilities.Utils;
import com.tt.database.Database;
import com.tt.models.Batting;
import com.tt.models.Bowling;
import com.tt.models.Fielding;
import com.tt.models.Gallery;
import com.tt.models.Game;
import com.tt.models.Ground;
import com.tt.models.Inning;
import com.tt.models.Player;
import com.tt.models.Team;

public class PlayerController {

    private static PlayerController instance;

    private PlayerController() {

    }

    public List<Player> getPlayers() throws SQLException {
        // query for all of the data objects in the database
        return Database.getSingletonInstance(Utils.context).getPlayerDao()
                .queryForAll();
    }

    public static PlayerController getSingletonInstance() {
        if (instance == null) {
            instance = new PlayerController();
        }
        return instance;
    }

    public Player JsonParse(JSONObject jsonObject) {
        Player player = null;
        try {

            GsonBuilder builder = new GsonBuilder();
            Gson gson = builder.create();

            player = gson.fromJson(jsonObject.getString("players")
                    , Player.class);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return player;
    }

    @SuppressWarnings("unused")
    private void writeToSdcard(Player response) {
        try {
            File newFolder = new File(
                    Environment.getExternalStorageDirectory(), "TestFolder");
            if (!newFolder.exists()) {
                newFolder.mkdir();
            }
            try {
                File file = new File(newFolder, "PlayerModel" + ".txt");
                file.createNewFile();
                FileOutputStream fOut = new FileOutputStream(file);
                OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
                myOutWriter.append(response.toString());
                myOutWriter.close();
                fOut.close();
            } catch (Exception ex) {
                System.out.println("ex: " + ex);
            }
        } catch (Exception e) {
            System.out.println("e: " + e);
        }
    }

    public int savePlayerDB(Player player) {
        int Count = 0;
   writeToSdcard(player);
        try {

            ForeignCollection<Batting> battings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("battings");
            ForeignCollection<Bowling> bowlings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("bowlings");
            ForeignCollection<Fielding> fieldings = Database
                    .getSingletonInstance(Utils.context).getInningDao()
                    .getEmptyForeignCollection("Fieldings");
            ForeignCollection<Team> teams = Database
                    .getSingletonInstance(Utils.context).getGameDao()
                    .getEmptyForeignCollection("teams");
            ForeignCollection<Gallery> gallery = Database
                    .getSingletonInstance(Utils.context).getPlayerDao()
                    .getEmptyForeignCollection("gallery");
            /*
             * ForeignCollection<Inning> innings = Database
             * .getSingletonInstance(Utils.context).getBattingDao()
             * .getEmptyForeignCollection("innings");
             */
            /*
             * ForeignCollection<Game> games = Database
             * .getSingletonInstance(Utils.context).getInningDao()
             * .getEmptyForeignCollection("games");
             */


            ForeignCollection<Ground> grounds = Database
                    .getSingletonInstance(Utils.context).getGameDao()
                    .getEmptyForeignCollection("grounds");
            Iterator<Game> iteratorGame = player.getGames().iterator();
            while (iteratorGame.hasNext()) {
                Game game = (Game) iteratorGame.next();
                if (game != null) {
                    game.setPlayer(player);

                    Iterator<Inning> iteratorInning = game.getInnings()
                            .iterator();
                    while (iteratorInning.hasNext()) {
                        Inning inning = (Inning) iteratorInning.next();
                        if (inning != null) {
                            inning.setGame(game);
                            if (inning.getBattings() != null) {
                                Iterator<Batting> iteratorBattings = inning
                                        .getBattings().iterator();

                                while (iteratorBattings.hasNext()) {
                                    Batting batting = (Batting) iteratorBattings
                                            .next();
                                    if (batting != null) {
                                        if (batting.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            batting.setInning(inning);
                                    }
                                }

                                battings.addAll(inning.getBattings());
                            }
                            if (inning.getBowlings() != null) {
                                Iterator<Bowling> iteratorBowlings = inning
                                        .getBowlings().iterator();
                                while (iteratorBowlings.hasNext()) {
                                    Bowling bowling = (Bowling) iteratorBowlings
                                            .next();
                                    if (bowling != null) {
                                        if (bowling.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            bowling.setInning(inning);
                                    }
                                }
                                bowlings.addAll(inning.getBowlings());
                            }
                            if (inning.getFieldings() != null) {
                                Iterator<Fielding> iteratorFieldings = inning
                                        .getFieldings().iterator();

                                while (iteratorFieldings.hasNext()) {
                                    Fielding fielding = (Fielding) iteratorFieldings
                                            .next();
                                    if (fielding != null) {
                                        if (fielding.getPlayer()[0]
                                                .equalsIgnoreCase(player
                                                        .get_id()))
                                            fielding.setInning(inning);
                                    }
                                }
                                fieldings.addAll(inning.getFieldings());
                            }
                        }
                    }
                    // innings.addAll(batting.getInnings());
                    Iterator<Ground> iteratorGround = game.getGrounds()
                            .iterator();
                    while (iteratorGround.hasNext()) {
                        Ground ground = (Ground) iteratorGround.next();
                        if (ground != null) {
                            ground.setGame(game);

                        }
                    }

                    grounds.addAll(game.getGrounds());
                    Iterator<Team> iteratorTeam = game.getTeams().iterator();
                    while (iteratorTeam.hasNext()) {
                        Team team = (Team) iteratorTeam.next();
                        if (team != null) {
                            team.setGame(game);

                        }
                    }
                    teams.addAll(game.getTeams());


                }

            }
            /*
             * Iterator<Bowling> iteratorBowling =
             * player.getBowlings().iterator(); while
             * (iteratorBowling.hasNext()) { Bowling bowling = (Bowling)
             * iteratorBowling.next(); bowling.setPlayer(player);
             * Iterator<Inning> iteratorInning =
             * bowling.getInnings().iterator(); while (iteratorInning.hasNext())
             * { Inning inning = (Inning) iteratorInning.next();
             * if(inning!=null){ inning.setBowling(bowling); Iterator<Game>
             * iteratorGame = inning.getGames().iterator(); while
             * (iteratorGame.hasNext()) { Game game = (Game)
             * iteratorGame.next(); if(game!=null) { game.setInning(inning);
             * Iterator<Ground> iteratorGround = game.getGrounds().iterator();
             * while (iteratorGround.hasNext()) { Ground ground = (Ground)
             * iteratorGround.next(); if(ground!=null) { ground.setGame(game);
             * grounds.addAll(game.getGrounds()); } } } }
             * //innings.addAll(batting.getInnings()); } } }
             */

            /*
             * Iterator<Team> iteratorTeam = player.getTeams().iterator(); while
             * (iteratorTeam.hasNext()) { Team team = (Team)
             * iteratorTeam.next(); team.setPlayer(player); }
             */
            Iterator<Gallery> iteratorGallery = player.getGallerys().iterator();
            while (iteratorGallery.hasNext()) {
                Gallery galleryobj = (Gallery) iteratorGallery.next();
                galleryobj.setPlayer(player);
            }
            // battings.addAll(player.getBattings());
            // bowlings.addAll(player.getBowlings());
            // teams.addAll(player.getTeams());
            gallery.addAll(player.getGallerys());

        } catch (Exception e) {
            e.printStackTrace();
        }
        return Count;
    }
}
Player[
  id=1,
  _id=531029b207987409620000d6,
  battingStyle=RHB,
  bowlingStyle=RAOS,
  dob=2000-02-28T06: 15: 15.264Z,
  playingRole=BWL,
  sname=QadeerButt,
  fname=Tahir,
  gallery=[

  ],
  games=[
    Game[
      id=4,
      gameType=T20‎,
      name=TotallyCricketvsLahoreTiger,
      totalOvers=20,
      dateStarted=2014-06-18T19: 00: 00.000Z,
      dateEnded=2014-06-18T19: 00: 00.000Z,
      innings=[

      ],
      grounds=[
        Ground[
          id=26,
          address=14835SE18thPl,
          Bellevue,
          WA98007,
          UnitedStates,
          city=Bellevue,
          country=UnitedStates,
          name=RobinswoodPark
        ],
        Ground[
          id=26,
          address=14835SE18thPl,
          Bellevue,
          WA98007,
          UnitedStates,
          city=Bellevue,
          country=UnitedStates,
          name=RobinswoodPark
        ]
      ],
      teams=[
        Team[
          id=30,
          name=TotallyCricket,
          category=Veterans,
          teamGender=Men,
          rating=5
        ],
        Team[
          id=19,
          name=LahoreTiger,
          category=Under19,
          teamGender=Men,
          rating=3
        ]
      ]
    ]
  ]
]
{
  "status": 1,
  "players": {
    "__v": 1,
    "_id": "531029b207987409620000d6",
    "battingStyle": "RHB",
    "bowlingStyle": "RAOS",
    "dob": "2000-02-28T06:15:15.264Z",
    "fname": "Tahir",
    "playingRole": "BWL",
    "sname": "Qadeer Butt",

        "teams": [
          {
            "__v": 30,
            "_id": "52f86b1d31f3b9b205000a58",
            "category": "Veterans",
            "name": "Totally Cricket",
            "rating": 5,
            "teamGender": "Men"
          },
          {
            "__v": 19,
            "_id": "52f9e64231f3b9b205000f36",
            "category": "Under19",
            "name": "Lahore Tiger",
            "rating": 3,
            "teamGender": "Men"
          }
        ],

        "grounds": [
          {
            "__v": 26,
            "_id": "53381c1bf0bce0bd20000002",
            "address": "14835 SE 18th Pl, Bellevue, WA 98007, United States",
            "city": "Bellevue",
            "country": "United States",
            "latitude": "",
            "longitude": "",
            "name": "Robinswood Park"
          },
          {
            "__v": 26,
            "_id": "53381c1bf0bce0bd20000002",
            "address": "14835 SE 18th Pl, Bellevue, WA 98007, United States",
            "city": "Bellevue",
            "country": "United States",
            "latitude": "",
            "longitude": "",
            "name": "Robinswood Park"
          }
        ]

  }
}***