2016-06-08 17 views
-2

Ich bin neu in MongoDB und NoSQL-Datenbanken und habe einige Probleme mit MongoDB-Treiber zu arbeiten. Ich verstehe nicht richtig, wie man ein Sub-Array/eine Liste aus dem Dokument bekommt und Daten darin wieder einfügt. Dies ist mein JSON/BSON-Objekt, das ich einfach in MongoDB speichern kann.Einfügen von Daten in mongoDB mit Java

{ 
"_id": { 
"$oid": "5757df25612c2445af329111" 
}, 
"shop": { 
"category": [ 
    { 
    "MobilePhones": [ 

    ] 
    }, 
    { 
    "TV-sets": [ 

    ] 
    }, 
    { 
    "Motherboards": [ 

    ] 
    } 
] 
} 
} 

Jetzt brauche ich ein Array von Kategorien von meinem Geschäft zu erhalten, erhalte Objekt wie Mobiltelefone/TV-Sets/Motherboards Kategorie aus diesem Array/Liste, wie ich in meiner Java-POJO Klasse schreiben.

public class Category extends BasicDBObject implements Serializable { 

private List<Goods> goodsList; 

private BasicDBObject basicDBObject; 

public BasicDBObject getBasicDBObject() { 
    return basicDBObject; 
} 

public void setBasicDBObject(BasicDBObject basicDBObject) { 
    this.basicDBObject = basicDBObject; 
} 

private String name; 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public List<Goods> getGoodsList() { 
    return goodsList; 
} 

public void setGoodsList(List<Goods> goodsList) { 
    this.goodsList = goodsList; 
} 

public Category(String name){ 
    this.name = name; 
} 

public Category(){} 
} 

Und legen Sie Waren in diese Kategorie, wie ich in

public class Goods extends BasicDBObject implements Serializable { 

private String title; 

private int price; 

private String status; 

private BasicDBObject basicDBObject; 

public BasicDBObject getBasicDBObject() { 
    return basicDBObject; 
} 

public void setBasicDBObject(BasicDBObject basicDBObject) { 
    this.basicDBObject = basicDBObject; 
} 

public Goods(String title, int price, String status) { 
    this.title = title; 
    this.price = price; 
    this.status = status; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String title) { 
    this.title = title; 
} 

public int getPrice() { 
    return price; 
} 

public void setPrice(int price) { 
    this.price = price; 
} 

public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 
} 

Auf diese Weise i/Sammlung erstellen bei Datenbank erhalten schreiben

DBCollection collection = db.getCollection("shop"); 
BasicDBObject dbObject = new BasicDBObject(); 
dbObject.put("shop", shop.createCategoriesWithGoods()); 
collection.insert(dbObject); 

Aber auf diese Weise hilft mir nicht zu Get Kategorie als

DBCollection collection = db.getCollection("MobilePhones"); 

Antwort

0

Weil eine Sammlung eine Tabelle ist (in SQL-Begriffen), sucht db.getCollection("MobilePhones"); nach einer "Tabelle" namens MobilePhones.

Sie haben Ihre Daten in einer Sammlung namens "Shop" gespeichert. Sie müssen getCollection("Shop") aufrufen, dann können Sie alle Operationen ausführen, die Sie für die Daten benötigen.