我在 Mongo DB 的数据库中有一个这样的文档。
{
"_id" : ObjectId("5800d904a3e7535f0d2d673a"),
"username" : "sai",
"password" : "sai123"
}
{
"_id" : ObjectId("5800d921a3e7535f0d2d673b"),
"username" : "surya",
"password" : "surya123"
}
现在我有一个包含用户名和密码的 html。
如何单独保存用户名和密码并将它们存储到 MongoDB 数据库中的单独字符串中?
当我尝试使用“用户名 SAI”作为键从数据库中使用如下 Java 代码查询数据时:
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;
public class MongoDBJDBC {
public static void main(String args[]){
try{
MongoClient client=new MongoClient("localhost", 27017);
DB db= client.getDB("test");
System.out.println("Connect to database successfully");
DBCollection coll= db.getCollection("login");
System.out.println("Collection POST selected successfully");
String uname="username";
String s="sai";
DBCursor cursor= coll.find(new BasicDBObject(uname, s),new BasicDBObject("_id", 0));
int i=1;
while(cursor.hasNext()){
System.out.println("Inserted doc :" +i);
DBObject xyz= cursor.next();
System.out.println(xyz);
i++;
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
我得到这个输出:
Connect to database successfully
Collection POST selected successfully
Inserted doc :1
{ "username" : "sai" , "password" : "sai123"}
如何操纵这些操作将用户名和密码存储到临时本地字符串中? 请给我建议。
更新: 我已经把完整的代码贴出来了。请帮我。我也是新来的。
最佳答案
要实现这种机制,您需要:
- 创建一个由 2 个字段组成的索引
coll.ensureIndex(new BasicDBObject("username", 1).append("password", 1))
,它可以在执行查询时获得最佳性能。 - 获取与所提供的用户名和密码匹配的第一个文档,如果可以找到文档,则用户名/密码正确,否则不正确。
代码可能是:
BasicDBObject query = new BasicDBObject("username", uname).append("password", s);
// Gets only the id of a doc that matches with the username and password
DBObject item = coll.findOne(query, new BasicDBObject("_id", Boolean.TRUE));
// If != null ok, ko otherwise
if (item == null) {
// KO
} else {
// OK
}
所需的导入:
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCollection;
注意:出于安全原因,将这样的密码直接存储在数据库中并不是一个好方法,它们应该被标记和散列
关于java - 如何使用 Java 将 MongoDB 中的数据保存到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049137/