Многопольные запросы с использованием драйвера C # для MongoDB

У меня возникли проблемы с выяснением синтаксиса для того, что яЯ пытаюсь достичь. Как сказал яиспользуя драйвер C # для MongoDB.

У меня есть пользовательский объект, определенный как

[BsonIgnoreExtraElements]
public class User : MongoEntity
{
    [BsonElement]
    public string Username { get; set; }

    [BsonElement]
    public string Password { get; set; }

    [BsonElement]
    public string Email { get; set; }
}

У меня также есть класс UserService, который выполняет действия в отношении коллекции User в моей базе данных mongo. Ниже приведен пример того, как ясоздаю очень простой пример входа в систему.

public UserPresentation Login(string username, string password)
{
    var entityQuery = Query.EQ(e => e.Username, username.ToUpper());

    var entity = this.MongoConnectionHandler.MongoCollection.FindOne(entityQuery);

    return (entity != null && entity.Id.ToString().Length > 0 && entity.Password == password) ? new UserPresentation(entity) : null;
}

Это работает, однако мой вопрос ... вместо создания запроса, который ищет только имя пользователя == имя пользователя, возвращает элемент и затем сравнивает пароль в операторе if, могу ли я как-то добавить дополнительные поля в начальныйentityQuery объект.

 WiredPrairie29 мая 2013 г., 21:53
Query.And? Это то, что тыищете?

Ответы на вопрос(1)

Решение Вопроса

Ты можешь использоватьQuery.And() как это...

var entityQuery = Query.And(
                      Query.EQ(e => e.Username, username.ToUpper()),
                      Query.EQ(e => e.Password, password)
                  );

УвидетьCSharp Драйвер Учебник

Или вы можете сделать это в стиле LINQ, см .:CSharp Driver LINQ Tutorial

Это тоже интересно:Как переписать MongoDB C # LINQ с требованием проекции, используя MongoCursor

 Dylan Hayes30 мая 2013 г., 02:17
Хорошо, я думаю, что более подход LINQ действительно то, что я хотел с самого начала. Я чувствую себя немного глупо из-за того, что не помню, как это сделать, но, возможно, это сэкономит кому-то еще несколько минут на прогулку.
 davmos30 мая 2013 г., 11:27
Дон»чувствую себя глупо! :) Поскольку популярность MongoDB продолжает расти, яЯ уверен, что это поможет, так что +1 за вопрос;)

Ваш ответ на вопрос