JAVAのspringdataのGridFsTemplateを使用して、DocumentDB用のMongoDB APIを使用しています。Azure DocumentDBのMongoAPIでのGridFSのサポート
MongoDBのGridFS部分を使用して大きなファイルを管理しようとするとエラーが発生します。
ファイルを作成してメタデータを検索できますが、ファイルの内容を取得できません。次のエラーが返されます。
Error: error: {
"_t" : "OKMongoResponse",
"ok" : 0,
"code" : 8,
"errmsg" : "The value '/media/7hsUAJOI2QsBAAAAAAAAAEeWwrcB' specified for query '$resolveFor' is invalid.\r\nActivityId: a68945e8-0000-0000-0000-000000000000",
"$err" : "The value '/media/7hsUAJOI2QsBAAAAAAAAAEeWwrcB' specified for query '$resolveFor' is invalid.\r\nActivityId: a68945e8-0000-0000-0000-000000000000"
}
は、私は同じエラーがRobomongoを使用してfs.chunksコレクションを点検しようとしてもらいます。
私がコレクションを作成できると思う理由は、AzureのWebインターフェイスでブラウズ機能を使用しているため、fs.chunksには多くのチャンクの代わりに1つのレコードしかないようです。だから、おそらく記憶が問題です。
標準のMongoDBを使用している場合、これはすべて正常に動作します。
これはエラーなしで完了するファイルを保存するためのコードです。ここ
gridFsTemplate.store(content, filename, contentType, metadata);
そして
は内容//this works
GridFSDBFile data = gridFsTemplate.findOne(query);
ByteArrayOutputStream out = new ByteArrayOutputStream();
if (data != null)
{
//this results in Exception with the same message as the error above
data.writeTo(out);
}
ありがとうございます。しかし、MongoDB APIのサポートと[広告](https://azure.microsoft.com/en-us/blog/documentdb-api-for-mongodb-now-generally-available/)の考え方は、開発者がコードを変更することなく両方のDBをサポートします。これには多くの理由があります。 ところで、DocumentDBエミュレータを使用している場合、上記のエラーは発生しません。だから、おそらくエミュレータが先にあり、修正が来ている... – jbteros
私はあなたの答えを受け入れるだろう、私は変更することができますか、または問題を解決することができる変更を構成することはできません。基本的にはまだサポートされていません。そして、あなたは別の方法を提供しました。再度、感謝します。 – jbteros
Mongo DBを介してCosmos DBでサポートされていないものを示すサポート・マトリックスはどこにありますか? 私のアプリケーションでGridFSを使用しているこの問題の最悪の部分は、Cosmos DBがファイルを正常に格納したように見せて、メタデータを格納してから実際にファイル。少なくとも、別個のメソッドへの呼び出しで、APIはうまくいけない結果を返します。 Cosmos DBがサポートしている、サポートしていないMongo APIのどの部分がはっきりとわかるのですか?それ以上のサポートはありますか? –