2016-07-13 10 views
0

MongoDBの階層レベルの異なるJSONオブジェクトを保存するにはどうすればよいですか?例えばSpringブートを使用したMongoDBのJSONオブジェクトへの挿入と取得

:-JSON

{ "名前": "ABC"、 "パスワード": "XYZ"、 "アドレス":{ "通り": "ghgjk"、 「ピン「:25646 }、 "readingHabbits":[ "jkjsdj"、 "sdkhks"、 "jlcsd" ]、 "eatingHabbits":{ "internalObjOne":{ "dkks": "jdskdfl"、 "lfld": "hfslvlsk" }、 "internalObjectSecond":{ "cjdlksl": "hcdkjnjkcs"、 "cjsdjljsl": "chsdskjc" } } }

はどのようSpringBootを使用して、異なるコレクションのMongoDBにJSON値の上方に格納することができますとJava?

また、私がrepository.findAll()を実行しても同じ結果が得られます。

答えて

0

それは次のようになります。

db.getCollection("images").insertOne(
     new Document("name", "abc") 
     .append("password", "xyz") 
     .append("address", 
       new Document() 
       .append("street", "ghgjk") 
       .append("pin", 25646)) 
     .append("readingHabbits", Arrays.asList("jkjsdj", "sdkhks", "jlcsd")) 
     .append("eatingHabbits", Arrays.asList(
       new Document() 
       .append("internalObjOne", 
         new Document() 
         .append("dkks", "jdskdfl") 
         .append("lfld", "hfslvlsk")), 
       new Document() 
       .append("internalObjectSecond", 
       new Document() 
         .append("cjdlksl", "hcdkjnjkcs") 
         .append("cjsdjljsl", "chsdskjc")) 
     ) 
) 
); 
+0

は、我々はいくつかの@DBRefのようなエンティティレベルでの注釈またはそのような何かでそれを行うことができませんか? – umesh

0
thanks for the answer, But I think I didn't made myself clear. 
Suppose I have a json object. 
{ "name": "abc", "password": "xyz", "address": { "street": "ghgjk", "pin": 25646 }, "readingHabbits": [ "jkjsdj", "sdkhks", "jlcsd" ], "eatingHabbits": { "internalObjOne": { "dkks": "jdskdfl", "lfld": "hfslvlsk" }, "internalObjectSecond": { "cjdlksl": "hcdkjnjkcs", "cjsdjljsl": "chsdskjc" } } } 

Base class :- 

@Document(collection="user") 
public class User{ 
@Id 
private String id; 
private String name; 
private String password; 
@DBRef 
private Address address; 
@DBRef 
private ReadingHabbits readingHabbits; 
//setter and getter 
} 

@Document(collection="address") 
public class Address{ 
@Id 
private String id; 
private String street; 
private int pin; 
//setter and getter 
} 

Do we need to create separate classes for "ReadingHabbits" and "EatingHabbits" ? 

If not then is the above approach correct to map two different entities with DBRef and save it to two different collection in MongoDB? 

Or do we have any other way to do the same operation ? 


---------- 
関連する問題