无法从MongoDB检索结果

时间:2011-06-06 09:19:22

标签: 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);

现在我必须在mongoDB中使用“element_id”找到文档,它是“_id” 但是当我使用时 -
 query.put("_id", pageElementBean.getElement_id());
虽然在mongoDB中存在字符串中包含“page_id”和“element_id”的文档,但它没有得到结果

我犯了错误

1 个答案:

答案 0 :(得分:0)

_id是字符串还是使用ObjectId?

如果是对象ID,则需要说:

query.put(“_ id”,new ObjectId(pageElementBean.getElement_id()));

(对于page_id也是如此 - 如果是ObjectId)

您可以通过以下方式检查shell中的类型:

db.YOUR_COLLECTION_NAME.findOne();