java - mongoDB 2.6 中的 ObjectId 不起作用

标签 java mongodb spring-data-mongodb

我在我的应用程序中使用 spring data mongodb。它使用 mongodb 2.6。我想通过 mongo 在插入期间分配的 id 查询集合的文档。我正在做这样的事情:

Query query = new Query();
String id = "542385a91f00bf7dbeae1fc7";
query.addCriteria(Criteria.where("_id").new Object(id));
template.find(query, entity.class);

此查询转换为:

{ "_id" : { "$oid" : "542385a91f00bf7dbeae1fc7"}}

当我在 mongo shell 上执行相同的操作时,出现错误:

error: { "$err" : "Can't canonicalize query: BadValue unknown operator: $oid", "code" : 17287 }

如何使用 spring data mongodb 按 id 查询?

最佳答案

应该是这样的

new ObjectId(id)

而不是new Object(id)。请see the API docs for details .

关于java - mongoDB 2.6 中的 ObjectId 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26051980/

相关文章:

node.js - 如何移植 Google Compute Engine 实例?

python - pymongo 没有查询输出

java - 如何访问注释中的属性值?

mongodb - 我想要使​​用 spring 数据从 mongodb 中获得一个字段的不同值的结果

annotations - 自定义 Spring Data @Query 中的 MongoDB 聚合

可以支持不同类型的Java类属性

Java swing 与远程 mysql

java - Java 中的菜单字符

python - 整数作为 Mongodb 中 MapReduce 的键

java - Google App Engine 嵌入式实体似乎从缓存中消失