我知道这个问题非常基础...我提前向您道歉。
我不能使用Jongo为Mongo做‘按ID查找’。
我试过了
Iterator<MongoTest> all = db.getCollection("mongoTest").find("{'_id': ObjectId('5194d46bdda2de09c656b64b')}").as(MongoTest.class).iterator();错误:
java.lang.IllegalArgumentException: {'_id': ObjectId('5194d46bdda2de09c656b64b')} cannot be parsed
at org.jongo.query.JsonQuery.marshallQuery(JsonQuery.java:34)
at org.jongo.query.JsonQuery.<init>(JsonQuery.java:27)
at org.jongo.query.JsonQueryFactory.createQuery(JsonQueryFactory.java:52)
at org.jongo.Find.<init>(Find.java:41)
at org.jongo.MongoCollection.find(MongoCollection.java:79)
at org.jongo.MongoCollection.find(MongoCollection.java:75)我试过了
Iterator<MongoTest> all = db.getCollection("mongoTest").find(withOid(new ObjectId("5194d46bdda2de09c656b64b"))).as(MongoTest.class).iterator();与文档中的一模一样,我甚至不能编译它...有两种可能的ObjectId类型。
de.undercouch.bson4jackson.types.ObjectId;告诉我
The constructor ObjectId(String) is undefined如果我使用
org.bson.types.ObjectId;它有时似乎工作得更好--但它仍然告诉我withOid( ObjectId )是未定义的。这并不完全令人惊讶,因为这个函数到底是什么对象的一部分?
我的问题是:如何在Jongo中使用_id进行查找?
发布于 2013-05-16 23:33:55
有人帮我在别处找到了答案,把它放在这里留给后人。
对此的有效构造是
db.getCollection("mongoTest")
.find("{ _id: # }", new ObjectId("5194d46bdda2de09c656b64b"))
.as(MongoTest.class);使用org.bson.types.ObjectId
或
db.getCollection("mongoTest")
.findOne(Oid.withOid("5194d46bdda2de09c656b64b"))
.as(MongoTest.class);`https://stackoverflow.com/questions/16589170
复制相似问题