Я использую адаптер хранения Amazon S3 с CollectionFS.Как документы в CollectionFS могут хранить методы в MongoDB?
Обычно вы не можете сохранить метод в 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()
?