我在MongoDB中有一个如下组织的集合:
{
"_id" : ObjectId("xxxxxx"),
"Username" : username
"Password" : encrypted_password
"Position" : position
.....
}
{
"_id" : ObjectId("yyyyyy"),
"Username" : username2
"Password" : encrypted_password2
"Position" : position2
.....
}
我想迭代整个集合并检查是否存在用户名+密码组合,但我似乎无法弄清楚:/
我使用带有C#的MongoDB驱动程序,这是我到目前为止所拥有的:
public bool DoesSaveDataExist(String database, String collection, string username, string password)
{
MongoClient client = new MongoClient(); // connect to localhost
MongoServer server = client.GetServer();
MongoDatabase test = server.GetDatabase(database);
var GetFromCollection = test.GetCollection<BsonDocument>(collection);
byte[] passwordToByte = System.Text.Encoding.ASCII.GetBytes(password);
passwordToByte = new System.Security.Cryptography.SHA256Managed().ComputeHash(passwordToByte);
String hash = System.Text.Encoding.ASCII.GetString(passwordToByte);
IMongoQuery query = new QueryDocument {
{ "Player Name", username },
{ "Password", hash}
};
return false;
}
任何帮助?
答案 0 :(得分:0)
您使用&#34;用户名&#34;在DB和&#34;播放器名称&#34;在查询中......这就是为什么你不匹配MongoDB中的任何文件。
答案 1 :(得分:0)
试试这个:
return GetFromCollection.Find(Query.And(Query.EQ("Username", username), Query.EQ("Password", hash))).Any();
您可能需要'使用System.Linq;'这个参考编译。 如果找到任何匹配项,则应该返回true。