如何在羽毛应用中的mongodb中同时使用相同的id删除两个不同集合中的文档

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在羽毛应用中的mongodb中同时使用相同的id删除两个不同集合中的文档相关的知识,希望对你有一定的参考价值。

我正在尝试同时使用相同的ID删除两个不同集合中的文档。有可能吗?

用户集合:

{
    "_id" : ObjectId("5a310315f685dd5038fecaaa"),
    "userId" : 3,
    "accountId" : 1,
    "userType" : "DRIVER",
    "firstName" : "Karthi",
    "lastName" : "keyan",
    "email" : "karthikeyan.a1@gmail.com",
    "password" : "$2a$12$KFYc6riMnqTuzXhR0ssKZQmejAU4RF8FthAIQD4sgOUcALesp7DaJxK",
    "phone" : "xyz",
    "updatedAt" : ISODate("2017-12-13T10:38:13.492Z"),
    "createdAt" : ISODate("2017-12-13T10:38:13.492Z"),
    "__v" : 0
}

工人集合:

{
    "_id" : ObjectId("5a310315f685dd5038fecaab"),
    "workerId" : 1,
    "accountId" : 1,
    "name" : "Karthikeyan",
    "email" : "karthikeyan.a1@gmail.com",
    "mobile" : "xyz",
    "type" : "DRIVER",
    "joinDate" : ISODate("2017-12-13T10:38:13.070Z"),
    "assignedVehicleId" : "23423231",
    "licenseNumber" : "TN2506",
    "createdBy" : "1",
    "createdDate" : ISODate("2017-12-13T10:38:13.070Z"),
    "updatedBy" : "1",
    "updatedDate" : ISODate("2017-12-13T10:38:13.070Z"),
    "regularHours" : 3600,
    "regularRates" : 1500,
    "overtimeRates" : 400,
    "distanceRate" : 1000,
    "stopRate" : 50,
    "workerStatus" : "AVAILABLE",
    "userId" : 3,
    "__v" : 0
}

现在我想使用userId同时删除这两个文档。

答案

数据库适配器允许使用remove调用null,并且查询将删除与该查询匹配的所有条目(请参阅the documentation)。在你的情况下:

app.service('users').remove(null, { query: { userId: 3 } });
app.service('workers').remove(null, { query: { userId: 3 } });

删除相关条目(例如,删除用户后删除该用户的所有工作人员)可以在after hook中完成:

app.service('users').hooks({
  after: {
    async remove(context) {
      const user = context.result;

      await context.app.service('workers').remove(null, {
        query: { userId: user.userId }
      });
    }
  }
});

以上是关于如何在羽毛应用中的mongodb中同时使用相同的id删除两个不同集合中的文档的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 R 中的 magick 包在图像边缘添加羽毛?

在Spring Boot应用程序中的模型类中同时使用JPA和MongoDB注释的问题

如何使用带有羽毛/快递的 webpack-dev-middleware?

MongoDB:如何处理两个用户同时上传相同的用户名或密码

尝试将 DataFrame 写入羽毛时出错。羽毛是不是支持列表列?

如何使用 MongoDB 在数组中的对象中更新数组中的对象中的文档?