一些"新闻文件" (一个集合)可能包含一个图像(另一个集合我使用cfs:standard-packages
和
cfs:filesystem
用于处理文件。)
这是Mongo数据库中的新闻文件:
{
"_id" : "75d5nZGitsLvo5APM",
"title" : "News with Image",
"description" : "This news entry has an image",
"type" : "news",
"createdAt" : ISODate("2016-01-31T15:46:01.334Z"),
"coverImageId" : "js5k88PuPeKJwRqcq"
}
这是一张图片文件:
{
"_id" : "js5k88PuPeKJwRqcq",
"original" : {
"name" : "amir_rahbaran.jpg",
"updatedAt" : ISODate("2014-02-14T14:56:36.000Z"),
"size" : 41614,
"type" : "image/jpeg"
},
"uploadedAt" : ISODate("2016-01-31T15:45:58.060Z"),
"copies" : {
"images" : {
"name" : "amir_rahbaran.jpg",
"type" : "image/jpeg",
"size" : 41614,
"key" : "images-js5k88PuPeKJwRqcq-amir_rahbaran.jpg",
"updatedAt" : ISODate("2016-01-31T15:45:58.000Z"),
"createdAt" : ISODate("2016-01-31T15:45:58.000Z")
}
}
}
问题:管理员可能想要删除新闻条目。目前,新闻文件已被删除。因此图像保存在数据库中。如您所见,新闻文档中的coverImageId
和图片文档中的_id
相同。
我的template.js:
Template.adminNewsEventsList.events({
'click #js-delete-ne': function (evt,template) {
evt.preventDefault();
var deleteConfirmation = confirm('Really delete this entry?');
if (deleteConfirmation) {
Images.remove({_id: "coverImageId"});
NewsEvents.remove(this._id);
};
}
});
我的template.html:
<template name="adminNewsEventsList">
<div class="container">
<div class="col-md-6 col-md-offset-3">
{{#each newsEventsData}}
<ul class="list-group">
<li class="list-group-item">
<a title="Edit" id="js-edit-ne" href="{{pathFor route='adminNewsEventsEdit'}}">{{title}}</a>
<!-- edit button -->
<a title="Edit" id="js-edit-ne" class="btn btn-primary" href="{{pathFor route='adminNewsEventsEdit'}}"><i class="fa fa-pencil-square-o"></i></a>
<!-- delete button -->
<a title="Edit" id="js-delete-ne" class="btn btn-danger" href="#"><i class="fa fa-trash"></i> </a>
</li>
</ul>
{{/each}}
</div>
</div>
</template>
感谢任何帮助。
答案 0 :(得分:0)
好的,我想点击提交按钮的那一刻,解决方案就突然出现了。我仍然分享它,因为它可能对其他人有用。
行:Images.remove({_id: "coverImageId"})
必须更改为:
Images.remove({_id: this.coverImageId})
希望有人会发现它有益。
任何改进仍然受到赞赏。