如何在MongoDB(Java)中使用搜索条件(在我的情况下电子邮件)检索单个字段(在我的情况下密码)



这是我尝试过的:

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("email", email_id);        
    DBCursor cursor=collection.find(searchQuery);
    String usr=null;
    String pass=null;
    while(cursor.hasNext())
    {
     usr=(String)cursor.next().get("username");
     pass=(String)cursor.next().get("password");
    }

我正在获取记录中存在的用户名值。但是密码返回空值。

请尝试以下操作:

BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("email", email_id);
cursor = collection.find(searchQuery);
DBObject resultElement = null;
resultElement = cursor.next();
if(resultElement.containsField("username")){
     String password = (String) resultElement.get("password");
}

希望这对:)有所帮助

我认为最好的方法是使用findOne:

DBObject query = new BasicDBObject("email", email_id);
user = collection.findOne(query);
if (user != null) 
{
  usr=  user.get("username").toString();
  pass=  user.get("password").toString();
}

相关内容

最新更新