删除级联时的 MongoDB DBRef

发布于 2024-09-06 15:22:25 字数 159 浏览 11 评论 0原文

MongoDB 有没有办法让外键具有“ON DELETE CASCADE”功能?

我知道您可以使用 DBRef 作为一种外键,但是当删除引用指向的集合中的项目时,引用将返回 null。但我希望引用所属的项目被删除。我该怎么做?

或者我每次删除东西时都需要检查对其的引用吗?

Is there a way in MongoDB to have a foreign key with a 'ON DELETE CASCADE' functionality?

I know you can use DBRef as a sort of foreign key but when the item in a collection where the reference points to is removed, the reference returns null. But i want that the item where the reference belongs to gets removed. How do i do this?

Or do i need every time i remove things check references to it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巨坚强 2024-09-13 15:22:25

这个功能现在不存在了。如果你想要的话。将其添加到 MongoDB Bugtracker

http://jira.mongodb.org

This feature doesn't exist now. If you want it. Add it on MongoDB Bugtracker

http://jira.mongodb.org

疯到世界奔溃 2024-09-13 15:22:25

没有内置的DELETE CASCADE,但您可以编写自己的登录名。这是我的

Category.post('findOneAndDelete', async document => {
  if (document) await Stock.findOneAndDelete({ categoryId: document._id });
});

详细信息:如果类别将被删除,我必须删除库存商品。因此,我在类别删除上使用post middleware,在该中间件中,我找到具有该类别的库存项目并将其也删除。

There is no builtin DELETE CASCADE but you can write your own login. Here is mine

Category.post('findOneAndDelete', async document => {
  if (document) await Stock.findOneAndDelete({ categoryId: document._id });
});

Details: I have to remove stock item if category will delete. So I use post middleware on Category delete and in that middleware i find the Stock Item which have that category and remove that too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文