如何在 MongoDB 中创建“触发器”

Ren*_*ado 6 c# mongodb nosql mongodb-.net-driver

我想创建一个触发器,其中插入的每个子文档都会在其他集合中增加一个字段,以生成该集合的子文档计数。

我尝试使用 MapReduce 创建一个搜索,但是对于数百万个注册表来说非常慢。

注意:我使用 C#,但如果你喜欢在 Bson 中展示如何做,没问题。

提取我的收藏

public class Header
{
    public Header()
    {
        Operation= new List<Operation>();
    }

    public ObjectId Id { get; set; }
    public Int64 Code1 {get; set;}
    public Int64 Code2 {get; set;}
    public string Name { get; set; }
    public List<Operation> Operations { get; set; }
}

public class Operation
{
    public Operation()
    {
        Itens = new List<Item>();
    }

    public string Value { get; set; }
    public List<Item> Item { get; set; }
}

public class Item
{
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Phi*_*ipp 7

MongoDB 没有触发器。您必须通过插入文档在您的应用程序中实现这一点,当插入成功时,您可以使用$add 运算符来增加另一个文档中的字段。

更新:如果您碰巧从服务提供商那里租用了MongoDB Atlas实例,那么您可以使用 triggers。但是如果你想在自己的服务器上运行MongoDB,那么这个功能是不可用的。


小智 5

自 2019 年 7 月以来,MongoDB 在 2020 年确实有触发器。https://docs.mongodb.com/stitch/triggers/database-triggers/

  • 数据库触发器仅适用于运行 MongoDB 3.6 或更高版本的 MongoDB Atlas 集群! (6认同)