2014-02-18 46 views
1

我正在製作一款遊戲,其中有不同多人遊戲服務器的遊戲包。玩家可以購買套件,將其保存到Mongo數據庫。我想數據庫被格式化如下:DBObjects列表 - Mongo Java驅動程序

{ 
    "server": "the_server_name", 
    "players": { 
     { 
      "player": "the_players_username", 
      "kits": [ 
       "kit1", 
       "kit3" 
      ] 
     }, 
     { 
      "player": "the_players_username", 
      "kits": [ 
       "kit1", 
       "kit2" 
      ] 
     } 
    } 
} 

我試過這樣做沒有用。有人願意爲初學者提供一些關於如何實現這一目標的幫助嗎?謝謝!

回答

2

下面是一個簡單的例子:

import com.mongodb.*; 

public class MongoTest { 

    public static void main(String[] args) throws Exception { 
     MongoClient mongoClient = new MongoClient("localhost", 27017); 
     DB db = mongoClient.getDB("myGameDB"); 
     DBCollection gameCollection = db.getCollection("myGameCollection"); 
     BasicDBObject obj = new BasicDBObject().append("sever", "the_server_name"); 
     BasicDBList players = new BasicDBList(); 
     BasicDBList list1 = new BasicDBList(); 
     BasicDBList list2 = new BasicDBList(); 
     list1.addAll(java.util.Arrays.asList(new String[]{"kit1", "kit2"})); 
     list2.addAll(java.util.Arrays.asList(new String[]{"kit1", "kit2"})); 
     BasicDBObject playerObj1 = new BasicDBObject("player", "the_players_username").append("kits", list1); 
     BasicDBObject playerObj2 = new BasicDBObject("player", "the_players_username").append("kits", list2); 
     players.add(playerObj1); 
     players.add(playerObj2); 
     obj.append("players", players); 
     gameCollection.insert(obj); 
     printCollectionContent(gameCollection); 
    } 


    static void printCollectionContent(DBCollection coll) { 
     BasicDBObject query = new BasicDBObject(); 
     BasicDBObject fields = new BasicDBObject("server", true).append("_id", false).append("players",true); 
     DBCursor curs = coll.find(query); 
     while (curs.hasNext()) { 
      DBObject o = curs.next(); 
      System.out.println(o.toString()); 
     } 
     curs = coll.find(query, fields); 
     while (curs.hasNext()) { 
      DBObject o = curs.next(); 
      System.out.println(o.toString()); 
     } 
    } 
} 

順便說一句,你json實際上是無效的。玩家似乎是一個陣列,但它缺少一個[ ]

此示例使用驅動程序版本2.11.3。示例是向您展示如何使用驅動程序,異常處理被省略。

相關問題