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

在MongoCollection中找到

狄河
2023-03-14
问题内容

MongoCollection<Document>在其中分配了一个收藏夹。我正在尝试通过其ID查找用户。

user = (Document) usersCollection.find(new Document("_id", username));

这样我就出错了

java.lang.ClassCastException:com.mongodb.FindIterableImpl无法转换为org.bson.Document

当我尝试

    BasicDBObject query = new BasicDBObject(); 
    BasicDBObject fields = new BasicDBObject("_id", username);
    usersCollection.find(query, fields);

我遇到错误

类型为MongoCollection的find(Bson,Class)方法不适用于参数(BasicDBObject,BasicDBObject)


问题答案:

尝试创建一个过滤器以传递给该 find()
方法,以获取集合中文档的子集。例如,要查找该_id字段的值为的文档test,请执行以下操作:

import static com.mongodb.client.model.Filters.*;

MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("mycoll");
Document myDoc = collection.find(eq("_id", "test")).first();
System.out.println(myDoc.toJson());


 类似资料:
  • 问题内容: 什么时候应该使用MongoCollection,什么时候应该使用DBCollection?相同的问题适用于DBObject,BasicDBObject,Document。似乎有不同的事物是相似的。至少对我来说。我觉得这很令人困惑。任何建议都将非常受欢迎。 问题答案: 这似乎是有关3.0.0 MongoDB Java驱动程序的问题。 一般建议是将Document / MongoColle

  • 如何使用Java从MongoCollection检索最近添加的文档?大多数现有参考文献描述了如何在v2中实现这一点。在v3.3中如何做到这一点? 我想这与find(Bson filter)方法有关。如何指定Bson过滤器,如何将可查找表转换为文档?

  • 我已经制作了一个MongoCollection和一个包含我想要搜索的键和值的文档。当我调用MongoCollection.find(document)时,我看不到对MongoStat进行的任何查询。但是,当我获取从find()方法返回的对象,并对其调用first()(由FindIterable从MongoIterable继承)时,在mongostat上会出现一个read查询。谁能给我解释一下这是怎

  • 问题内容: 我有以下XPath: 当我在XPath Checker(Firefox扩展)中试用此XPath时,它一直都能完美运行。但是当我在Selenium中执行以下操作时: 它不断给我以下日志错误: 我为解决这个问题而疯狂。有人看到我的代码行有任何错误吗? 问题答案: 该查询字符串不应该像这样(根据javadoc api)吗?

  • 问题内容: 除了循环查找JSON中的数据以外,还有其他更好的方法吗?用于编辑和删除。 数据被安排为地图列表。喜欢: 问题答案: (您不是在搜索“ JSON”,而是在数组中搜索-JSON字符串已经反序列化为对象图,在本例中为数组。) 一些选项: 使用对象而不是数组 如果您控制着这个东西的产生,它 一定 是一个数组吗?因为如果没有的话,有一种简单得多的方法。 说这是您的原始数据: 您可以改为执行以下操

  • 问题内容: 我有一个问题:nodemon不能运行npm脚本(例如), 但是如果在npm脚本之外的命令行上调用nodemon ,则nodemon会正常运行。 在npm脚本中如何调用它: 运行npm start脚本时: 我一直在寻找解决方案,但没有找到解决方案。 问题答案: 您可以通过添加以下内容来解决此问题: 在中不存在时会发生问题。 已添加,因为仅在开发期间才需要。