почему Filter поступает определённым образом.
                  
                  
                  
                  
                  
                  Допустим, есть модель (простейшая, везде string):
                  
                  
                  SomeObject
                  
                  
                  {
                  
                  
                  "_id": "Guid1",
                  
                  
                  "OwnerId" : "Guid2"
                  
                  
                  }
                  
                  
                  
                  
                  
                  В коллекции, соответственно, два дока, пусть будет
                  
                  
                  {
                  
                  
                  "_id": "Guid1",
                  
                  
                  "OwnerId" : "Guid2"
                  
                  
                  }
                  
                  
                  и
                  
                  
                  {
                  
                  
                  "_id": "Guid100500",
                  
                  
                  "OwnerId" : "Guid2"
                  
                  
                  }
                  
                  
                  
                  
                  
                  Я делаю так:
                  
                  
                  var ids = new List<string>{"Guid1"};
                  
                  
                  var filter = Builders<SomeObject>.Filter.In("_id", ids);
                  
                  
                  Builders<T>.Filter.And(Builder<SomeObject>.Eq("OwnerId", "Guid2"));
                  
                  
                  var documentsFromDb = await collection
                  
                  
                                      .Find(filter).ToListAsync();
                  
                  
                  
                  
                  
                  Почему мне приходят ОБА дока, а не только первый, ведь у меня прописано AND? Что я делаю не так? То есть как будто бы фильтру становится до лампочки, что у него есть условие, чтобы айдишник был строго в списке.
                  
                  
                
Решил проблему, всем спс. =)
Просто надо было заменить Builders<T>.Filter.And(Builder<SomeObject>.Eq("OwnerId", "Guid2")); на filter = filter & (Builder<SomeObject>.Eq("OwnerId", "Guid2"));
Обсуждают сегодня