"XX"라는 콜렉션이 있으며이 콜렉션에는 여러 문서가 있습니다. 필드 "userEmail"에 일치합니다. 내가 배열의 필드를 문서를 "USEREMAIL"= "[email protected]"찾아 업데이트해야 할 지금MongoDB의 배열 항목을 Java 드라이버를 사용하여 두 가지 "where"조건으로 업데이트하는 방법
{ "_id" : { "$oid" : "5331e4e313163623bb649249"} ,
"userEmail" : "[email protected]"}
"reservations" : [ {
"idRest" : "23" ,
"userPhone" : "88888888" ,
"date" : "03-13-2015" ,
"hour" : "14:30"
},
{
"idRest" : "24" ,
"userPhone" : "88888888" ,
"date" : "03-13-2015" ,
"hour" : "17:30"
},
{
"idRest" : "22" ,
"userPhone" : "88888888" ,
"date" : "03-13-2015" ,
"hour" : "16:30"
}]
}
그리고 :
이
는 문서의 구조 여기서 "idRest"= 24입니다.이 경우 :{
"idRest" : "24" ,
"userPhone" : "88888888" ,
"date" : "03-13-2015" ,
"hour" : "17:30"
},
JAVA 드라이버를 사용하여 쿼리를 작성하는 데 도움을 줄 수 있습니까? :) 감사합니다.
편집 :이 내 코드, 대신 업데이트의 필드는 명령을 사용하여
`
쉘에서DBCollection collReservationByUser = db.getCollection(usersReservationCollection);
DBObject queryx = new BasicDBObject("userEmail", rest.getEmailUser());
BasicDBObject document1 = new BasicDBObject();
document1.put("idRest", rest.getEmailUser());
document1.put("userPhone", rest.getPhoneUser());
document1.put("date", rest.getFecha());
document1.put("hour", rest.getHora());;
DBObject update1 = new BasicDBObject();
update1.put("$push", new BasicDBObject("reservations", document1));
collReservationByUser.update(queryx, update1, true, true);`
직접 작성하고 문제가 있습니까? 그렇다면 여기에 코드와 오류를 게시하십시오. –
감사합니다. 코드를 추가합니다. 필드를 업데이트하는 대신 새 서브 문서를 추가하십시오 – HCarrasko