1
我在我的應用程序中使用彈簧數據mongodb。它使用了mongodb 2.6。我想通過mongo在插入過程中分配的id來查詢集合的文檔。我在做這樣的事情:mongoDB 2.6中的ObjectId不工作
Query query = new Query();
String id = "542385a91f00bf7dbeae1fc7";
query.addCriteria(Criteria.where("_id").new Object(id));
template.find(query, entity.class);
這個查詢語句:
{ "_id" : { "$oid" : "542385a91f00bf7dbeae1fc7"}}
當我執行上蒙戈外殼一樣,它提供了一個錯誤:
error: { "$err" : "Can't canonicalize query: BadValue unknown operator: $oid", "code" : 17287 }
怎麼辦我使用彈簧數據mongodb通過id查詢?
您不能在mongo shell中用'{「_id」:{「$ oid」:「542385a91f00bf7dbeae1fc7」}}'使用'{「_id」:ObjectId(「542385a91f00bf7dbeae1fc7」)}'進行查詢。 – Wizard 2014-09-26 05:50:43
好的。當我做了SerializationUtils.serializeToJsonSafely(查詢)時,這就是它打印的內容。所以,如果我必須通過ID查詢,我該怎麼做?因爲query.addCriteria(Criteria.where(「_ id」)。(new Object(id)));不起作用。它給我0結果。 – coder 2014-09-26 07:05:26
您能提供文檔的插入java代碼,還是從mongo shell查詢文檔的結果? – Wizard 2014-09-26 08:52:01