Я использую драйвер C# для Mongodb, и мне было интересно, как найти какие-либо документы с идентификатором (int), которые соответствуют списку идентификаторов (List).
Теоретически, если Я проверял список в каждом документе для единственного int, я мог использовать «EqAny (c => c .IDs, 32)», однако я ищу противоположность тому, где я могу проверить один int в документе, чтобы посмотрите, совпадает ли он с каким-либо из списка целых чисел.
Мой текущий код такой, который возвращает все документы из-за строки "var filter = FilterDefinition.Empty;"
public void GetSerialsForZones(List<int> zoneIds)
{
IMongoDatabase db = MongoClient.GetDatabase(DatabaseName);
IMongoCollection<ZoneMessage> collection = db.GetCollection<ZoneMessage>(CollectionName);
var filter = FilterDefinition<ZoneMessage>.Empty;
foreach (int zoneId in zoneIds)
filter &= Builders<ZoneMessage>.Filter.Eq(c => c.ID, zoneId);
var result = await collection.Find(filter).ToListAsync();
}
Код был изменен для упрощения.