2016-08-16 70 views
0

我在我的MongoDB數據庫中有兩個集合。 Collection1有一個Guid(well string)字段,其名稱爲Col2DocRef,其中引用Collection2中的文檔_id查找特定字段值在列表中的BsonDocuments <ValueType>?

我目前有一個List<Guid>代表_id s的文件在Collection2。我想查找Collection1中的所有文檔,其中字段Col2DocRef等於List<Guid>中的任何值。

這是通過使用AnyIn來完成此操作的正確方法嗎?

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

回答

1

您可以直接使用FindAsync()通過過濾象下面這樣假設,那些收集已經在您的應用程序接口對應的強類型POCO。

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

相關問題