0

CollectionFS で Amazon S3 ストレージ アダプターを使用しています。

通常、メソッドを MongoDB に格納することはできません。たとえばCustomerOrders、ディスカウント コードを使用してドキュメントを直接変更するメソッドを含むドキュメントをコレクションに保存することはできません。

CustomerOrders.findOne().addDiscountCode('SAVE50PERCENT')

しかし、CollectionFS と S3 ストレージ アダプターを使用すると、remove関数を実行して画像コレクションから項目を削除したり、Amazon S3 バケットから項目を削除したりできます。

Images.findOne().remove(function(error, success){
  console.log(success)
});

構文の類似性が印象的でした。それは基本的に言っています:

  • 画像コレクションに入る
  • ランダムなドキュメントを見つける
  • オブジェクトとして返す
  • .remove()そのオブジェクトにあるメソッドを実行します

ただし、実際にコレクションを宣言するのは異なります。

次のようにしてImagesコレクションを作成する代わりに、

Images = new Mongo.Collection('images');

私がしなければなりません:

Images = new FS.Collection("images", {
  stores: [storeName],
  filter: {
    allow: {
      contentTypes: ['image/*']
    }
  }
})

私はそのFS.Collection拡張Mongo.Collection's findOne()メソッドを推測しているので、コードは次のことができます:

  • 画像コレクションに入る
  • ランダムなドキュメントを見つける
  • オブジェクトとして返す
  • .remove()このオブジェクトにメソッドを追加します
  • この拡張オブジェクトを返す
  • .remove()そのオブジェクトにあるメソッドを実行します

このようなことは正しいですか?メソッドは、.remove実際にはドキュメント自体には保存されません。findOne()?で返されるドキュメント オブジェクトに単純に追加されます。

4

1 に答える 1