2016-08-16 1 views
0

MongoDB 데이터베이스에 두 개의 콜렉션이 있습니다. Collection1은(실제로는 string) 필드의 필드는 Col2DocRef이며 의 문서는 Collection2입니다.특정 필드 값이 목록 내에있는 BsonDocuments 찾기 <ValueType>?

나는 에 s의 문서를 나타내는 List<Guid>을 현재 가지고 있습니다. Collection1에있는 모든 문서를 찾으려면 Col2DocRef 필드가 List<Guid>에있는 값과 같습니다.

AnyIn을 사용하여 이렇게하는 것이 적절한 방법입니까?

List<Guid> guids = ... // Creating by searching in Collection2 and deserializing 
Builders<BsonDocument>.Filter.AnyIn("Col2DocRef", guids); 

답변

1

직접 그 컬렉션 강하게 응용 프로그램 인터페이스에 POCO을 입력 대응 한 가정 아래와 같이 필터를 통과 FindAsync()를 사용할 수 있습니다.

List<Guid> guids = ... // Creating by searching in Collection2 and deserializing 
var collection = db.GetCollection<Collection1>("Collection1"); 
var result = collection.FindAsync(col => guids.Contains(col.Id)).ToListAsync(); 
+0

필자는 내 콜렉션의 열거 형, 즉 'FilterDefinition'과'SortDefinition'을 전달하는 메소드를 제공하여 문서를 가져 오는 내 호출을 추상화했습니다. 이것은 다른 모든 경우에서 잘 작동합니다. 필자는 구체적으로'FilterDefinition'의'AnyIn' 함수 사용에 대해 질문했습니다. 비록 내가 그렇게 할 필요가 있다면이 대답이 효과가 있다는 것을 알았지 만. – KDecker