我正在使用带有CollectionFS的Amazon S3存储适配器。
通常,您无法将方法存储到MongoDB中。例如,我无法在我的CustomerOrders
集合中存储一个文档,并在其上使用折扣代码直接修改文档。
CustomerOrders.findOne().addDiscountCode('SAVE50PERCENT')
但是使用CollectionFS和S3存储适配器,我能够运行remove
函数从我的Images集合中删除一个项目,并从我的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()
中返回的文档对象中?
答案 0 :(得分:0)
remove方法来自FS Collection包中的原型(扩展了典型的收集功能并修改了默认行为),所以你是对的。 如果你看一下cfs:collection包和api.common.js,你可以看到这些方法是如何定义的: api.common.js