返回集合的类型。使用java在mongodb中查找
我试图使用java实现一个简单的登录函数,其中用户通过文本字段输入用户名和密码,然后使用maven依赖项根据mongodb集合中的一组文档检查这些凭据。 已建立与数据库的连接,并添加了相关导入
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import static com.mongodb.client.model.Filters.and;
import static com.mongodb.client.model.Filters.eq;
String user = txtUser.getText();
String pass = txtPass.getText();
MongoDatabase db = DbConnection.getDbConnection();
MongoCollection collection = db.getCollection("Admin");
FindIterable<Document> findLogin = collection.find(and(eq("username", user),eq("password",pass)));
if(findLogin == null){
System.out.println("Failed");
}else{
System.out.println("Successful");
}
这里的问题是,即使输入了错误的凭据,也会显示successful。这是我第一次使用mongodb,所以我不能完全确定可以在mongodb上运行哪些查询。集合中包含什么类型的值。找到回报。我可以采取哪些可能的方法来克服这个问题
# 1 楼答案
MongoCollection的find()方法返回的FindIterable将不会是
null
。为了确定查询是否匹配了任何文档,您需要检查FindIterable
在您的例子中,first()方法是最合适的。这样,您就可以对单个文档执行空检查。总而言之,它可能是这样的: