繁体   English   中英

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

[英]how to build dynamic query in mongodb with various conditions

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

SELECT distinct(employeeID), firstname, Lastname, salary, joinedOn FROM [Employees]
where salary >= 40000 and joinedOn between '2011/02/25' and '2012/02/27'

使用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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM