Insérer un tableau dans un objet dans MongoDB
Je suis nouveau à MongoDB et je veux insérer des données dans mongodb comme ça, mais je ne pouvais pas comprendre comment
{
image = "cab"
tags = [
[ "NNP", 0 ],
[ "NN", 1 ]
]
},
{
image = "castle"
tags = [
[ "NNP", 2 ],
[ "NN", 1 ],
]
}
mon code est
BasicDBObject obj = new BasicDBObject();
obj.put("images", ....);
for(Tag tag:tags){
BasicDBObject tagsObj = new BasicDBObject();
tagsObj.put("NNP",tag.getNNP());
tagsObj.put("NN",tag.getNN());
obj.put("tags",tagsObj);
}
Mise à JOUR:
en utilisant ce code
Mongo m = new Mongo();
DB db = m.getDB("test");
DBCollection coll = db.getCollection("tags");
for(Tag tag:tags){
BasicDBList dbl = new BasicDBList();
dbl.add(new BasicDBObject("NNP",tag.getNNP()));
dbl.add(new BasicDBObject("NN", tag.getNNP()));
BasicDBObject outer=new BasicDBObject("images", currentImageName).append("tags", dbl);
coll.insert(outer);
}
- Je stocker chaque image seule cause les balises peut-être comme cela pour la même image
{
image = "cab",
tags = [
{ "NNP", 0 },
{ "NN", 1 }
],
[ {"NNP", 4 },
{ "NN", 5 }
],
[
{"NNP", 0 },
{ "NN", 4 }
]
},
Grâce
source d'informationauteur Peril
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous utilisez BasicDBObject pour clé-valeur des mappings et BasicDBList pour tableau d'objets. Pour l'objet de votre question, vous devrez faire cela:
Il y a des méthodes bien pratiques dans l'api pour rendre tout ceci un peu moins verbeux.
La cartographie fonctionne comme ceci:
Vouliez-vous dire comme ça?
Voici comment je l'utilise lors de l'utilisation de mongo3.x:
supposons que vous voulez être comme ceci:
{"data": [{"key":"v1"}, {"key":"v1"}, {"key":"v1"}] }
[etape 1]: l'utilisation de Java la Carte pour créer des objet json qui correspond aux éléments à l'intérieur de la matrice, qui est, le {} à l'intérieur de []
[etape 1 Sna]:
Map m1,m2,m3 = new HashMap(); m1.put("key", "v1"); m2.put("key", "v1"); m3.put("key", "v1");
[etape 2]: l'utilisation de Java Liste pour ajouter tous les Java de la Carte en un seul élément.
[etape 2 Sna]:
List list = new ArrayList(); list.add(m1); list.add(m2); list.add(m3);
[etape 3]: ajouter Java de la liste de mongo
[etape 3 Sna]:
Document dc = new Document("key", list);