检查数据库中是否存在元素

时间:2015-01-04 23:54:21

标签: c# mongodb bson database

我在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;
    }

任何帮助?

2 个答案:

答案 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。