2017-01-08 84 views
0

我試圖從一個隨機集合中檢索單個文檔,而沒有將整個集合加載到列表中。

我知道我想要使用聚合,但我不知道如何用Java/Morphia實際執行它,而且我也無法在自述文件中找到任何內容。

db.users.aggregate(
    [ { $sample: { size: 1 } } ] 
) 

如何使用Morphia(理想情況下)或通過原始Mongodb驅動程序執行此查詢?

所有關於獲取隨機文檔的問題似乎都在3.2之前,看起來比我認爲的要複雜得多。

回答

0

想通了,而總現在已經過時,它會爲我的使用情況做

public void findRandomObject() { 
    BasicDBObject object = new BasicDBObject("$sample", new BasicDBObject("size", 1)); 
    AggregationOutput output = getCollection().aggregate(object); 

    for (DBObject result : output.results()) { 
     LOGGER.info("output >> " + result); 
    } 
}