#java #json #mongodb
#java #json #mongodb
Вопрос:
private String pageElementUpdateProperty="{'user_id':'4d9fe87d1e327f0858000003','session_token':'84146295a9c0eb344f68510ac3645763','project_id':'4dac27b6156aec840d000007','page_id':'4db90554156aec180a000005','element_id':'4dec8964206b74b0dbe2236a',property:{style:{left:177.5,'top':153.5,'width':600,'height':800}}}";
DBCollection collPageElement = getServerDocument("PageElementCollection");
JSONObject jsonPageElementObject=JSONObject.fromObject(pageElementUpdateProperty);
PageElmentBean pageElementBean = (PageElmentBean) JSONObject.toBean(jsonPageElementObject,PageElmentBean.class);//fill the fields of Bean with JSON object..this i'm gettig correctly
BasicDBObject query = new BasicDBObject();
query.put("_id", pageElementBean.getElement_id());
query.put("page_id", pageElementBean.getPage_id());
DBCursor cur;
cur = collPageElement.find(query);
теперь мне нужно найти документ, используя «element_id», который является «_id» в MongoDB
но когда я использую —
query.put("_id", pageElementBean.getElement_id());
результат не получен, хотя документ с заданными « page_id
» и « element_id
» в строке существует в MongoDB
где я допускаю ошибку
Комментарии:
1. я получил решение использовать (новый ObjectId(pageElementBean.getElement_id()))
Ответ №1:
Является ли _id строкой или он использует ObjectId?
Если это идентификатор объекта, вам нужно сказать:
query.put(«_id», новый ObjectId(pageElementBean.getElement_id()));
(то же самое справедливо и для page_id — если это ObjectId)
Вы можете проверить тип в командной строке, сказав:
db.YOUR_COLLECTION_NAME.findOne();