将列表的两个字段与 mongoDb c# 驱动程序中的数据进行比较

Compare tow fields of a list with data in mongoDb c# driver

假设我有一个名为 filterProfile 的内存列表。

var filterProfile = people.Select(x => new {x.Name,x.Age}).ToList();

我需要 运行 在 mongodb 中进行这样的查询:

var resultData = await collection
.Find(x => filterProfile.Any(y => y.Name == x.Name && y.Age == x.Age))
.TolistAsync();

使用 $in 运算符,您可以检查数组中是否存在 SINGLE 字段。 如何同时检查 两个 字段? 可能吗?

我想到的唯一方法就是这样做:

 var filter = Builders<Person>.Filter.Empty;
 foreach (var item in people)
      {
         var nameFilter = Builders<Person>.Filter.Eq(x => x.Name, item.Name);
         var ageFilter = Builders<Person>.Filter.Eq(x => x.Age, item.Age);
         var loopFilter = Builders<Person>.Filter.And(nameFilter , ageFilter );
         filter = Builders<Person>.Filter.Or(filter, loopFilter );
      }

var resultData = await collection.Find(filter).TolistAsync();

它可以工作,但对我来说看起来不太干净。