MongoDB:使用Java驱动程序按ObjectId查询

脑电图

结合使用MongoDB和Java驱动程序,我有一个要根据其ObjectId查询的集合用户(大图:我是从ObjectId推断到对象的创建时间戳)。

问题是,按ObjectId进行查询似乎不起作用:我总是没有结果。为了进行测试,我已经在搜索查询中对数据库中现有用户的ObjectId进行了硬编码,以确保获得结果:

{“ _id”:ObjectId(“ 565ef85ee4b0a4db3c2fc96b”),...}

不过,我从未得到任何结果。

这些是我尝试构建查询的方法,以及所创建查询的打印输出:

1。

BasicDBObject query = new BasicDBObject();
query.put("_id", "565ef85ee4b0a4db3c2fc96b");

查询:{“ _id”:“ 565ef85ee4b0a4db3c2fc96b”}

2。

BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId("565ef85ee4b0a4db3c2fc96b"));

查询:{“ _id”:{“ $ oid”:“ 565ef85ee4b0a4db3c2fc96b”}}

3。

BasicDBObject query = new BasicDBObject("_id", "565ef85ee4b0a4db3c2fc96b");

查询:{“ _id”:“ 565ef85ee4b0a4db3c2fc96b”}

4。

BasicDBObject query = new BasicDBObject("_id", new ObjectId("565ef85ee4b0a4db3c2fc96b"));

查询:{“ _id”:{“ $ oid”:“ 565ef85ee4b0a4db3c2fc96b”}}

5,

DBObject query = new BasicDBObject("_id", 
        BasicDBObjectBuilder.start("$gte", new ObjectId("565ef85ee4b0a4db3c2fc96b")).get());

查询:{“ _id”:{“ $ gte”:{“ $ oid”:“ 565ef85ee4b0a4db3c2fc96b”}}}

我的应用程序已部署在OpenShift上,并在RockMongo GUI中手动尝试了查询。我得到相同的空结果。但是,如果我手动搜索{“ _id”:ObjectId(“ 565ef85ee4b0a4db3c2fc96b”)}则会得到正确的结果。

我的问题是:如何正确构建查询以使其起作用?

或者,如何使Java驱动程序生成ObjectId(“ ...”)而不是{“ $ oid”:“ ...”}

亚历克斯

下面的代码段显示了如何通过来查询Mongo集合_id请注意,这{ "$oid": "<id>" }与严格等效ObjectId( "<id>" )BSON类型的严格模式表示符合JSON RFC,并允许任何JSON解析器将这些严格模式表示作为键/值对进行处理。

import org.bson.types.ObjectId;

public DBObject findDocumentById(String id) {
    BasicDBObject query = new BasicDBObject();
    query.put("_id", new ObjectId(id));
    DBObject dbObj = collection.findOne(query);
    return dbObj;
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

聚合查询中的Mongodb Java驱动程序使用限制

来自分类Dev

如何使用Java驱动程序查询mongodb

来自分类Dev

MongoDB Java驱动程序记录查询

来自分类Dev

Java驱动程序:如何使用Mongodb的updateFirst方法获取更新后的对象的objectId

来自分类Dev

使用FindOne按日期范围查询MongoDb(通过Nodejs本机驱动程序)

来自分类Dev

MongoDB:使用Java驱动程序拉

来自分类Dev

使用Java mongo驱动程序在Java中实现mongodb查询

来自分类Dev

MongoDB Java驱动程序:多日期查询

来自分类Dev

使用MongoDB C#驱动程序查询数组的数组

来自分类Dev

使用C#驱动程序从mongodb查询标签

来自分类Dev

如何使用Mongo-Java驱动程序运行MongoDB本机查询(JSON)?

来自分类Dev

MongoDB Java驱动程序:找不到包含org.bson.types.ObjectId的jar

来自分类Dev

MongoDB Java驱动程序:找不到包含org.bson.types.ObjectId的jar

来自分类Dev

MongoDB Java驱动程序:MongoCore驱动程序与MongoDB驱动程序与MongoDB异步驱动程序

来自分类Dev

如何使用golang mgo MongoDb驱动程序获取最后插入的ObjectId

来自分类Dev

使用Datastax Java驱动程序以JSON查询行

来自分类Dev

MongoDB使用Java驱动程序版本3.0更新

来自分类Dev

使用Java 3驱动程序更新MongoDB

来自分类Dev

使用MongoDB 3.0 Java驱动程序计数结果

来自分类Dev

如何使用MongoDB 3.0 Java驱动程序执行聚合

来自分类Dev

如何在MongoDB Java驱动程序中使用sureIndex

来自分类Dev

使用MongoDB 3.0 Java驱动程序对结果进行计数

来自分类Dev

无法使用Heroku上的Java驱动程序与MongoDB连接

来自分类Dev

等效于 $objectToArray 使用 Mongodb java 驱动程序 3

来自分类Dev

如何在Java mongodb驱动程序中使用“ _id”字段而不使用集合名称来查询文档?

来自分类Dev

关于MongoDB Java驱动程序的困惑

来自分类Dev

MongoDB的$ setIntersection与Java驱动程序

来自分类Dev

MongoDB Java驱动程序-对象类型

来自分类Dev

MongoDB异步Java驱动程序find()

Related 相关文章

  1. 1

    聚合查询中的Mongodb Java驱动程序使用限制

  2. 2

    如何使用Java驱动程序查询mongodb

  3. 3

    MongoDB Java驱动程序记录查询

  4. 4

    Java驱动程序:如何使用Mongodb的updateFirst方法获取更新后的对象的objectId

  5. 5

    使用FindOne按日期范围查询MongoDb(通过Nodejs本机驱动程序)

  6. 6

    MongoDB:使用Java驱动程序拉

  7. 7

    使用Java mongo驱动程序在Java中实现mongodb查询

  8. 8

    MongoDB Java驱动程序:多日期查询

  9. 9

    使用MongoDB C#驱动程序查询数组的数组

  10. 10

    使用C#驱动程序从mongodb查询标签

  11. 11

    如何使用Mongo-Java驱动程序运行MongoDB本机查询(JSON)?

  12. 12

    MongoDB Java驱动程序:找不到包含org.bson.types.ObjectId的jar

  13. 13

    MongoDB Java驱动程序:找不到包含org.bson.types.ObjectId的jar

  14. 14

    MongoDB Java驱动程序:MongoCore驱动程序与MongoDB驱动程序与MongoDB异步驱动程序

  15. 15

    如何使用golang mgo MongoDb驱动程序获取最后插入的ObjectId

  16. 16

    使用Datastax Java驱动程序以JSON查询行

  17. 17

    MongoDB使用Java驱动程序版本3.0更新

  18. 18

    使用Java 3驱动程序更新MongoDB

  19. 19

    使用MongoDB 3.0 Java驱动程序计数结果

  20. 20

    如何使用MongoDB 3.0 Java驱动程序执行聚合

  21. 21

    如何在MongoDB Java驱动程序中使用sureIndex

  22. 22

    使用MongoDB 3.0 Java驱动程序对结果进行计数

  23. 23

    无法使用Heroku上的Java驱动程序与MongoDB连接

  24. 24

    等效于 $objectToArray 使用 Mongodb java 驱动程序 3

  25. 25

    如何在Java mongodb驱动程序中使用“ _id”字段而不使用集合名称来查询文档?

  26. 26

    关于MongoDB Java驱动程序的困惑

  27. 27

    MongoDB的$ setIntersection与Java驱动程序

  28. 28

    MongoDB Java驱动程序-对象类型

  29. 29

    MongoDB异步Java驱动程序find()

热门标签

归档