如何在各种条件下在mongodb中构建动态查询

时间:2014-02-24 15:51:50

标签: c# mongodb

我有一个sql查询我需要进行等效mongodb查询我正在使用c#驱动程序。是否有可能创建一个动态方法来创建mongo等效的这类sql查询,我可以动态地指定在条件的情况下动态创建所有列的内容。请帮助使用c#

创建mongo等效查询
SELECT distinct(employeeID), firstname, Lastname, salary, joinedOn FROM [Employees]
where salary >= 40000 and joinedOn between '2011/02/25' and '2012/02/27'

1 个答案:

答案 0 :(得分:0)

如何使用Linq构建动态查询?

  public T findOne<T> (Expression<Func<T, bool>> expression) where T: class
    {
        var db = server.GetDatabase(databaseName);
        var documents = db.GetCollection<T>(typeof(T).Name);

        return (documents.AsQueryable<T>().Where(expression)).SingleOrDefault;
    }

您可以这样使用它:

var employee = findOne<Employee>(e=> d.salary>=4000 &&
                                  d.joinedOn > "2011/02/25"  &&
                                  d.joinedOn < "2012/02/27");

我认为你应该将joinOn转换为DateTime。