【问题标题】:How to delete from MongoDB with conditional from another collection?如何从另一个集合有条件地从 MongoDB 中删除?
【发布时间】:2018-03-28 06:41:51
【问题描述】:

我的 MongoDB 上有两个集合。 让我们说: 帐户、用户

我想删除 10 个月前最后一次更新且帐户不再处于活动状态的所有用户。

在我的用户集合中,我有一个与帐户相关的 accountId 属性。

是否可以创建查询来删除有要求的用户?或者这种情况下最好的方法是什么?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    看看 $lookup 函数。您可以使用它来“加入”表格。 然后您可以遍历光标并删除文档(对于大型集合不会很好)

    var cursor = db.grades.aggregate(pipeline);
    cursor.forEach(function (doc){
     db.grades.remove({"_id": doc._id});
    });
    

    【讨论】:

    • 是的,我正在阅读试图找到其他解决方案,但唯一的选择是游标逐个循环遍历它们并使用聚合和查找,这会给我带来一些问题,因为我不能拥有更多索引。但它就是这样......呵呵谢谢你的帮助! :)
    • 您可以尝试其他可能效果更好的方法。 1-使用聚合获取您需要删除的所有 id 2-获取结果并运行 remove() 查询
    猜你喜欢
    • 2010-10-13
    • 2020-06-27
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多