当前位置: 首页 > 面试题库 >

如何在Java mongodb驱动程序中使用“ _id”字段查询文档?

谭文林
2023-03-14
问题内容

我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样-

{
  "_id" : ObjectId("4f693d40e4b04cde19f17205"),
  "hostname" : "hostnameGoesHere",
  "OSType" : "OSTypeGoesHere"
}

我正在尝试将此文档搜索为-

ObjectId id= new ObjectId("4f693d40e4b04cde19f17205");        
BasicDBObject obj = new BasicDBObject();        
obj.append("_id", id);        
BasicDBObject query = new BasicDBObject();        
query.putAll(query);

但我得到以下错误-

error: reference to putAll is ambiguous, both method putAll(Map) in BasicBSONObject and method putAll(BSONObject) in BasicBSONObject match
        query.putAll(query);

BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。

所以我的问题是如何传递“ _id”?


问题答案:

通过使用as作为查询来解决

query.putAll((BSONObject)query);


 类似资料:
  • 我试图在MongoDB\驱动程序\查询中使用选项: 如果$选项似乎可以: --------$options: 数组([排序]= $query没有给我好的选项: 限制和批量大小不等于20,为什么?请问怎么办? 提前感谢

  • 问题内容: 参考文献: http://www.mongodb.org/display/DOCS/Java+Tutorial 对于mongo db来说还算是新手,但是我正在尝试更新集合中现有文档的一部分…不幸的是,上面的链接没有更新示例。 本质上,我只希望能够: 向文档添加新字段 将文档的现有字段更新为新值 这是我的代码(Grails + Groovy + Java + MongoDB + Java

  • 问题内容: 我正在尝试或在MongoDB中使用某些条件(使用Java驱动程序)。这就是我在做什么: 我想在这些条件下使用操作数,但是我想默认值是“和”,我不知道如何更改它。在上面的代码中,如果条件之一返回,结果也将是。 问题答案: 您正确地说,在查询中指定多个字段的“默认”是每个字段都用作条件过滤器,因此是“与”运算。 您可以使用具有以下语法的$ or操作数,通过OR子句执行MongoDB查询:

  • 通过使用MongoDB和Java驱动程序,我有一个用户集合,我想根据他们的ObjectId进行查询(总体情况:我从ObjectId推断出对象的创建时间戳)。 问题是,用ObjectId查询似乎不起作用:我总是没有结果。为了测试的目的,我在搜索查询中硬编码了数据库中现有用户的ObjectId,只是为了确保我能得到结果: {“_id”:ObjectId(“565ef85ee4b0a4db3c2fc96

  • 我使用下面的mongo查询来获取最高温度。有人能帮助我们如何使用mongo java驱动程序,使用和在java中实现吗?

  • null 我认为一种既长又耗时的方法是,首先找到带有给定url的提要,然后遍历所有子文档,以找到满足的文档,然后检查是否满足,如果满足,则更新comment对象。但是,我想一定有更简单的方法来做到这一点?我已经试过了- 可从http://www.tagwith.com/question_305575_how-to-find-and-update-subdocument-within-array-b