MongoDb c#driver 2.0查询样式

时间:2015-08-07 15:02:48

标签: c# mongodb mongodb-.net-driver mongodb-csharp-2.0

早期我们为LINQ使用了MongoDb提供商,但现在我们已迁移到MongoDb c# driver 2.0并且有一些我不理解的内容。

当我们使用LINQ提供程序时,查询如下所示:

  var query = from c in dbCollection.AsQueryable()
                        where c.UserId == userId && c.CampaignId == campaignId
                        select c;

但是现在我可以通过几种方式实现它:

var query =
     Builders<Analytics>.Filter.Eq(a => a.UserId, userId) &
     Builders<Analytics>.Filter.Eq(a => a.CampaignId, campaignId);

Builders<Analytics>.Filter.Where(
c => c.created >= Convert.ToDateTime(dateFrom) &&
     c.created <= Convert.ToDateTime(dateTo));

这些方法是否有任何差异或优势?

1 个答案:

答案 0 :(得分:1)

在MongoDB教程中,我曾经做过一次,他们表示你总是可以使用LINQ,但是你不应该强迫它。 这只是因为并非所有内容都已在LINQ中实现,并且可能不是(或甚至不可能)通过LINQ&#34;方式实现#34;。 它实际上意味着你可以两种方式使用。您可以尽可能使用Fluent API或LINQ。