MongoDb c# driver 2.0 查询样式

MongoDb c# driver 2.0 query styles

早期我们为 MongoDb 使用 LINQ 提供程序,但现在我们已经迁移到 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));

这些方法有什么区别或优势吗?

在我曾经做的 MongoDB 教程中,他们说你可以随时使用 LINQ,但你不应该强迫它。 这仅仅是因为并非所有内容都已在 LINQ 中实现,并且可能不会(或什至不可能)通过 LINQ "way" 实现。 这实际上意味着您可以同时使用这两种方式。您可以尽可能使用 Fluent API 或 LINQ。