【问题标题】:Meteor: How to delete two documents from two collections with a single click in MongoDBMeteor:如何在 MongoDB 中单击一下从两个集合中删除两个文档
【发布时间】:2016-01-31 16:08:44
【问题描述】:

一些“新闻文件”(一个集合)可能包含一张图片(我正在使用的另一个集合cfs:standard-packagesand 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相同

我的模板.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);
        };
    }
});

我的模板.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>

感谢任何帮助。

【问题讨论】:

    标签: javascript mongodb events meteor


    【解决方案1】:

    好的,在我想点击提交按钮的那一刻,解决方案突然出现在我的脑海中。我仍然分享它,因为它可能对其他人有用。

    该行:Images.remove({_id: "coverImageId"}) 必须更改为:

    Images.remove({_id: this.coverImageId})

    希望有人会从中受益。

    任何改进仍然值得赞赏。

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多