【发布时间】:2015-12-07 02:59:16
【问题描述】:
使用来自 mongo 的新 3.0+ java driver 检查集合中是否存在文档的最佳方法是什么。
我查看了here 并尝试做类似的事情。我只做到了这一点:
FindIterable<Document> iterable = collection.find(eq("code", "abcdefg")).projection(Projections.include("_id")).limit(1);
这会返回一个 FindIterable 但你如何检查它是否找到了任何东西?如果可以,请提供代码示例。
我试过了:
if (!iterable.first().isEmpty()){System.out.println(" RESILT IS FOUND ");}else{System.out.println(" RESULT IS NOT FOUND ");}
但是当查询没有返回任何内容时,它会因以下错误而死:
Exception in thread "main" java.lang.NullPointerException
at com.oss.niagaramqtt.MongoLib.exists(MongoLib.java:58)
at com.oss.niagaramqtt.MongoLib.<init>(MongoLib.java:47)
at com.oss.niagaramqtt.startup.main(startup.java:24)
这确实是检查文档是否存在的正确方法吗?
编辑: 这可能是答案,请确认:
MongoCursor<Document> iterable = collection.find(eq("code", "abcdefg")).projection(Projections.include("_id")).limit(1).iterator();
if (iterable.hasNext()){System.out.println(" RESILT IS FOUND ");}else{System.out.println(" RESULT IS NOT FOUND ");}
【问题讨论】:
标签: java mongodb mongodb-query