2016-03-07 93 views
0

我有5个集合 - A,B,C,D,E。我有一个存储在A中的文档,并且与其他4个集合中的文档相关。我正在使用MeteorJS。现在,我必须安全地删除文档中的数据。换句话说,文件必须在A中删除,以及在其他文件中的引用。只有在他们全部被删除后,我才能向用户显示成功消息。现在,我只有:使用MeteorJS从MongoDB的多个集合中删除文档

A.remove(documentID); 

我必须在这里使用回调来显示用户的结果。我对MongoDB完全陌生,并且明白,在SQL中不可能级联删除一行。我不知道如何编写将从所有集合中删除文档及其引用(全部由documentID引用)的代码,并将结果显示给用户。有人可以帮忙吗?非常感谢!

+0

你有没有试过任何代码? –

回答

0

您正在寻找搜集钩子:https://github.com/matb33/meteor-collection-hooks

搜集钩子让你之前执行代码/插入/更新/后集合删除。使用你的例子,你可以创建一个看起来像这样的收集钩:

A.after.remove(function(userId, doc) { 
    B.remove({AReference: doc._id}); 
    C.remove({AReference: doc._id}); 
    D.remove({AReference: doc._id}); 
    E.remove({AReference: doc._id}); 
}); 

无论你的相关领域是什么,AReference将需要。

+0

非常感谢,但在通过Github回购之后,我有一个问题,我该如何检查这类代码的错误?所有的清除应该是成功的。如果是这样,则将成功代码返回给用户。如果一个人失败,应该返回一个错误代码。我是否应该使用回拨来拨打每个电话? – user3033194

+0

这取决于你想如何处理它。我可能会在删除中投入大量的尝试,这对我来说已经足够了。 –

相关问题