아래의 데이터를 참고해서 보자 user, actionList, somethingList, loc, date라는 구성으로 이루어진 단위이다. 여기서
actionList와 somethingList에 원하는 값을 가진 데이터만 추출하는 예시를 작성해보겠다.~!
{ "_id" : ObjectId("52c282c33004e2712c02ee89"),
"_class" : "com.gomp.trackingX.nosql.model.TXEvent",
"user" : { "mId" : 1, "userId" : "yhjung", "password" : "1234", "email" : "ㅁㅁㅁㅁㅁ", "nickname" : "hooni", "sex" : "MAN", "deviceOS" : "Android", "createDate" : "2013-12-07 12:10:55.0" },
"actionList" : [ { "mId" : 6, "name" : "사격" } ],
"somethingList" : ["mId" : 41, "name" : "아하하" ],
"loc" : { "longitude" : 61.966994763721516, "latitude" : 13.876642282331927 },
"date" : ISODate("2013-12-31T08:39:31.824Z") }
actionList와 somethingList를 보면 mId 값으로 데이터를 추출하는 코드이다. (Spring Data)
final Query query = new Query();
final List<Integer> actionIdList = new ArrayList<Integer>();
final List<Integer> someThingIdList = new ArrayList<Integer>();
리스트에 데이터 추가~~~~~
query.addCriteria(Criteria.where(TXEvent.KEY_ACTION_LIST).elemMatch(Criteria.where(Action.KEY_ID).in(actionIdList)));
query.addCriteria(Criteria.where(TXEvent.KEY_SOMETHING_LIST).elemMatch(Criteria.where(Something.KEY_ID).in(someThingIdList)));
this.mongoTemplate.find(query, 데이터클래스~~.class);
이해를 돕기위해 공식홈페이지 예제를 가져왔다. 아래의 데이터에서 원하는데이터를 추출할때~!
{ _id: 1, zipcode: 63109, students: [ { name: "john", school: 102, age: 10 }, { name: "jess", school: 102, age: 11 }, { name: "jeff", school: 108, age: 15 } ] } { _id: 2, zipcode: 63110, students: [ { name: "ajax", school: 100, age: 7 }, { name: "achilles", school: 100, age: 8 }, ] } { _id: 3, zipcode: 63109, students: [ { name: "ajax", school: 100, age: 7 }, { name: "achilles", school: 100, age: 8 }, ] } { _id: 4, zipcode: 63109, students: [ { name: "barney", school: 102, age: 7 }, ] }
이렇게 검색을 하면 된다.
db.schools.find( { zipcode: 63109 }, { students: { $elemMatch: { school: 102 } } } )
'Development > Web & Server' 카테고리의 다른 글
[Hibernate] @ManyToMany 자기 자신의 collection가지기~! (친구 리스트를 가지고 있기) (0) | 2014.01.04 |
---|---|
[Mysql] errno: 150 발생시!! (0) | 2014.01.03 |
[MYSQL] utf-8 설정하기~! (0) | 2013.12.29 |
[Spring Framework] Hibernate 4 Search 사용하기~! (Latitude, Longitude 검색) (0) | 2013.12.25 |
[Spring Framework] Hibernate 4 연동하기 (0) | 2013.12.25 |