首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jongo中按对象Id查找

在Jongo中按对象Id查找
EN

Stack Overflow用户
提问于 2013-05-16 21:45:07
回答 1查看 4.1K关注 0票数 3

我知道这个问题非常基础...我提前向您道歉。

我不能使用Jongo为Mongo做‘按ID查找’。

我试过了

代码语言:javascript
复制
Iterator<MongoTest> all = db.getCollection("mongoTest").find("{'_id': ObjectId('5194d46bdda2de09c656b64b')}").as(MongoTest.class).iterator();

错误:

代码语言:javascript
复制
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)

我试过了

代码语言:javascript
复制
Iterator<MongoTest> all = db.getCollection("mongoTest").find(withOid(new ObjectId("5194d46bdda2de09c656b64b"))).as(MongoTest.class).iterator();

与文档中的一模一样,我甚至不能编译它...有两种可能的ObjectId类型。

代码语言:javascript
复制
de.undercouch.bson4jackson.types.ObjectId;

告诉我

代码语言:javascript
复制
The constructor ObjectId(String) is undefined

如果我使用

代码语言:javascript
复制
org.bson.types.ObjectId;

它有时似乎工作得更好--但它仍然告诉我withOid( ObjectId )是未定义的。这并不完全令人惊讶,因为这个函数到底是什么对象的一部分?

我的问题是:如何在Jongo中使用_id进行查找?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-16 23:33:55

有人帮我在别处找到了答案,把它放在这里留给后人。

对此的有效构造是

代码语言:javascript
复制
db.getCollection("mongoTest")
  .find("{ _id: # }", new ObjectId("5194d46bdda2de09c656b64b"))
  .as(MongoTest.class);

使用org.bson.types.ObjectId

代码语言:javascript
复制
db.getCollection("mongoTest")
  .findOne(Oid.withOid("5194d46bdda2de09c656b64b"))
  .as(MongoTest.class);`
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16589170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档