当前位置: 首页 > 知识库问答 >
问题:

Mongodb java驱动程序:mongojack,按子文档id查询

柳涵意
2023-03-14

谁能帮我用mongojack java驱动程序在mongodb子文档上为条件编写等效的查询

db.parentdocs.find({“subdoc._id”:ObjectId(“542d916a18ee9cfa2daeae15”)})

这里subdoc是parentdoc文档中的一个子文档。我可以使用其他属性查询,但不能使用id

BasicDBObject查询=新的BasicDBObject();query.put(“subdoc.name”:“mysubdoc”);

我需要编写与上面的find查询(db.parentdocs.find({“subdoc._id”:ObjectId(“542d916a18ee9cfa2daeae15”)})相同的java版本)。

共有1个答案

严宇
2023-03-14

objectid是MongoDB驱动程序中的一个特殊类型(org.bson.types.objectid);因此,您需要将其添加到您的查询中,如下所示:

BasicDBObject query = new BasicDBObject();
query.put("subdoc._id", new ObjectId("542d916a18ee9cfa2daeae15")); 
 类似资料:
  • 我正在尝试编写一个Java函数,将单词列表插入到集合中。我想为每个单词的唯一字段“单词”一个文档。我要插入的单词列表包含许多重复的单词,所以我希望我的函数只在集合中没有具有相同“word”值的文档时才插入文档。如果已经有一个具有相同“单词”值的文档,该函数不应该改变或替换这个文档,而是继续插入我的列表中的下一个单词。 我在字段“word”上创建了一个索引,以避免重复的文档并捕获重复的键Except

  • 我正在寻找一种通过文档id而不是字段进行查询的方法。 可能是这样的: 在这种情况下,searchInput是一个不完整的documentId。 我在Stackoverflow上看到了一个解决方案,但它不适用于Flatter:https://stackoverflow.com/a/52252264/8539070 要记住的另一件事是,我正在尝试显示集合中与id的某些部分匹配的所有文档的列表。 谢谢你

  • 我的目标是使用聚合框架创建一个管道来对我的数据进行分组,然后将这个管道与java驱动程序一起使用。MongoDB v4.0.3 我使用MongoDB Compass创建了以下管道(减少到重要部分): 这导致以下(生成的)Java代码: 集合中$组阶段之前的数据如下所示: $组阶段应返回以下数据结构: 问题所在 Mongo Compass按预期预览了阶段的结果,但使用java驱动程序的阶段的结果非常

  • 我目前正在尝试构建一个使用C#驱动程序与MongoDB接口的web API。 GET路由使用几个可选参数,这些参数根据请求中的参数动态生成LINQ查询。我遇到的问题是,当通过_id进行筛选时,它总是无法返回数据;这些尝试包括_id.toString()以及简单的_id==id比较。我尝试了几种比较id参数和documentid的方法,但都没有奏效。完全没有where子句,或者按文档中的任何其他字段

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

  • 我尝试使用scala 2.11.7在mongodb 3.0.7中保存一个文档,然后进行快速访问:http://mongodb.github.io/mongo-scala-driver/1.0/gett-start/quick-tour/,但是我运行了这个示例,没有发生任何事情。不创建数据库、集合和文档。 控制台: 少了什么?