如何使用Mongo Java驱动程序从集合中检索随机文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Mongo Java驱动程序从集合中检索随机文档相关的知识,希望对你有一定的参考价值。

我是Mongo Java驱动程序的新手。我使用3.4 Mongo Java驱动程序。我试图从集合中检索随机文档。

我搜索并发现我必须使用$sample来查找随机文档但是当我尝试实现时,我无法检索它。

以下是我试过的代码。

MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

MongoDatabase database = mongo.getDatabase("car_local"); 

MongoCollection<Document> collection = database.getCollection("assetSchemeSet");

collection.aggregate([ { $sample: { size: 1 } } ]);

如果有人可以帮助我,那将是一个很大的帮助。

答案

您可以使用Aggregates sample helper,如下所示:

MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

MongoDatabase database = mongo.getDatabase("car_local"); 

MongoCollection<Document> collection = database.getCollection("assetSchemeSet");

collection.aggregate(Arrays.asList(Aggregates.sample(1)));

这将通过执行$sample管道阶段返回1个文档。

以上是关于如何使用Mongo Java驱动程序从集合中检索随机文档的主要内容,如果未能解决你的问题,请参考以下文章

如何使用随机键从 Firebase 数据库中检索子项到 Android 的回收站视图中?

如何使用 Sails.JS + GridFS 从 Mongo 检索图像文件?

Mongo:如果孩子在同一个集合中,如何获取相关记录?

如何使用解析服务器从现有的 mongo 集合中获取数据?

如何查询将日期存储为某种格式的字符串的 mongo 集合?

使用Java中的$ elemMatch实现Mongodb查询