Mongoから多くのデータを取得し、途中で処理することなくクライアントJavascriptに直接フィードする必要があるため、デシリアライズ/再シリアル化する必要はありません。MongoDBからの結果を逆シリアル化なしで取得する
Mongoは実際にJSONにデータを格納するわけではありませんが、データのシリアライズ/デシリアライズに費やす時間を最小限に抑える方法があることを理解していますか?クエリによって数十万のオブジェクトがあると、それぞれが驚くほど膨大な時間を要します。
私はJSONを取得するために発見した最も基本的な方法はこれです:あなたは(というBsonDocumentより)RawBsonDocumentを使用することができ
return this.db.GetCollection<BsonDocument>("mycollection")
.Find(Builders<BsonDocument>.Filter.Eq("FileId", fileId))
.Project(Builders<BsonDocument>.Projection.Exclude("_id"))
.ToList().ToJson(this.jsonWriterSettings);
「膨大な時間」を定量できますか? ToJson()コールだけのパフォーマンスを具体的に測定していますか? – helmy
「莫大な量」は、数千から数十万エントリ(フィルタ後)の間に約3〜20秒です。 FileIdフィールドにインデックスを追加した後、時間はすでに2で割られています。私はクエリ自体と非直列化の違いを測定しようとはしませんでしたが、私は非直列化を伴わないがMongoから直接文字列を取得するソリューションを期待しています... – thomasb