1
MongoDBドライバによって読み込まれているドキュメントがあります。リンクされたドキュメントの読み込みMongoDBドライバ
このドキュメントでは、別のリンクされたドキュメントがObjectId
にあります。
自分のアプリケーションのために私が最初にドキュメントが完全に読み込ま必要があるので、次のように、私はIEnumerable
を通じてリンクされたドキュメントをロードしています:
IMongoDatabase Database { get; set; }
public class Document1 {
[BsonId]
public ObjectId Id;
public ObjectId Document2Id;
[BsonIgnore]
public Document2 Document2;
}
public class Document2 {
[BsonId]
public ObjectId Id;
public string Foo;
public string Bar;
}
public IEnumerable<Document1> List() {
var 1documents = Database.GetCollection<Document1>("1documents");
var 2documents = Database.GetCollection<Document2>("2documents");
foreach(var document in 1documents.AsEnumerable()) {
document.Document2 = 2documents
.AsEnumerable()
.FirstOrDefault(d => d.ID == document.Document2Id);
yield return document;
}
}
私の問題は、文書2の負荷がかかりすぎているということです。私は500を超えるレコードを持っています。私はそれを小さなデータベースと考えています。それぞれの負荷は500msかかる。
リンクされたドキュメントをMongoDB C#Driverで読み込む方法はありますか?