2015-05-14 120 views
-2

我試圖找出一個對象(文檔)是否存在於一個集合中。檢查對象(文檔)是否存在於MongoDB中(使用Jongo)

這是我試過的,但我卡住了。

@DbTable(name = "websites") 
private MongoCollection websitesTable; 

private boolean isInTable(String url) { 
    FindOne p = websitesTable.findOne("{url: #}", url); 
    return false; 
} 

如何檢查,如果給出url已經在集合中?任何幫助讚賞。

+2

user1924244,這不是一個服務檯。你無法從其他類似問題中獲得幫助,那麼這不是合適的地方。所以對於那些真正陷入困境的人來說,所以請不要指定人們應該做什麼,不要做什麼。 – Jaques

+0

@賈克斯,你是誰來告訴什麼是「真正」的問題,什麼不是? – aioobe

+0

@ user1924244,看看這個文檔:[檢查文檔是否存在 - MongoDB緩慢findOne vs查找](https://blog.serverdensity.com/checking-if-a-document-exists-mongodb-slow-findone -VS-找到/)。它建議使用以下命令:'db.collection.find({_ id:「myId」},{_id:1})。limit(1))'。 – aioobe

回答

1

試試這個:

return websitesTable.findOne("{url: #}", url) 
        .as(Map.class) 
        .iterator() 
        .hasNext(); 
+0

我改變了一點:'Map website = websitesTable.findOne(「{url:#}」,url).as(Map.class);'然後'return website == null?假:真;'現在它工作!我不知道這是否正確,但它的工作原理是這樣的。 – user1924244

+0

太好了。請注意,返回可以簡化爲'return website!= null;' – aioobe

+0

對,謝謝! – user1924244