加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在Jongo中通过Object Id查找

发布时间:2020-12-15 04:10:17 所属栏目:Java 来源:网络整理
导读:我知道这个问题非常基本……我很抱歉. 我不能使用Jongo为Mongo做一个’ID by ID’. 我试过了 IteratorMongoTest all = db.getCollection("mongoTest").find("{'_id': ObjectId('5194d46bdda2de09c656b64b')}").as(MongoTest.class).iterator(); 错误: java.
我知道这个问题非常基本……我很抱歉.

我不能使用Jongo为Mongo做一个’ID by 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进行查找?

解决方法

有人帮我在其他地方找到答案,把它放在这里供后代使用

一个有效的结构是

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);`

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读