質問

んGridFS持っアップサート?

私はすでに存在するものと同じ_idで指定された_idを持つ画像、および1つを保存したい場合は、

たとえば、私はそれを(更新)を上書きします。それ以外の場合は、それを挿入します。

役に立ちましたか?

解決

あなたが技術的に複数のドキュメントを修正していて、確かにトリッキーな競合状態が発生する可能性があるため、

はスペックは本当に、アップサートをサポートするように設計されていません。私たちはマットが最初にして入れて削除することである、何をしたかをお勧めしてます。

他のヒント

は、私はモンゴルビー宝石のソースコードを見て、これを見つけました

# Store a file in the file store. This method is designed only for writing new files;
# if you need to update a given file, first delete it using #Grid#delete.
# ...
def put(data, opts={})

だから、私はコードでこれをやった。

grid.delete(id) # if exists  
grid.put(tmp_file.read, :_id => id, :content_type => file_type)
ここで働いシナトラスクリプトを参照してください。 http://github.com/acani/acani-sinatra/ブロブ/マスター/ acani.rb#L97

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top