nutzmongo
nutzmongo copied to clipboard
自定义的_id值查询 的时候有问题
如果自定义的字符串类型的_id 会报 ObjectId 验证问题
ZMoDoc old = zMoCo.findOne(ZMoDoc.ID("rekoe"));
错误
2017-08-23 17:23:35,633 [DEBUG][org.mongodb.driver.protocol.query] - Query completed
Exception in thread "main" java.lang.RuntimeException: 'rekoe' not ObjectId
at org.nutz.lang.Lang.makeThrow(Lang.java:132)
at org.nutz.mongo.ZMoDoc.put(ZMoDoc.java:497)
at org.nutz.mongo.ZMoDoc.putAll(ZMoDoc.java:558)
at org.nutz.mongo.ZMoDoc.NEW(ZMoDoc.java:41)
at org.nutz.mongo.ZMoDoc.NEW(ZMoDoc.java:82)
at com.anawin.mongo.StudentService.fetch(StudentService.java:55)
at com.anawin.mongo.StudentTest.main(StudentTest.java:16)
@zozoh
用的最新版的 nutzmongodb
_id只能是ObjectId,其他不合法的
有些时候 会自定义_id值 这情况下 就不能用了 但命令行是支持的 @wendal
额,完全没有考虑到这个情况哦。 我都是自己开一个字段存自定义 ID 的 -_-!
好像还不太好改
+1.我们用的都是uuid。不过话又说回来。我没有用nutzmongo额。
ZMoDoc doc = ZMoDoc.NEW();
doc.setDBobj(new BasicDBObject("_id", "rekoe"));
DBCursor cursor = zMoDB.c("Student").find(doc);
@ansjsun 这样来用