Mongodb 如何在不导致Mongo聚合管道崩溃的情况下处理Mongo聚合管道中的重复密钥异常?

Mongodb 如何在不导致Mongo聚合管道崩溃的情况下处理Mongo聚合管道中的重复密钥异常?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我正在使用Mongo聚合管道的C#驱动程序对一些数据执行投影操作,然后将其输出到目标表 目标表对“key”和“coid”字段的组合具有唯一的key约束,因此当管道运行时,如果任何文档试图违反此约束,它将崩溃 我需要做的是,每当一个文档试图违反约束时,我都希望记录有关该文档的一些信息,然后丢弃它,并让管道在不崩溃的情况下继续其操作 目前我是Mongo管道的新手,所以我刚刚将整个过程包装在一个try-catch块中。我意识到这是次优的,我正在寻找一些指导 有没有更好的方法来捕获重复的密钥异常并记录它

我正在使用Mongo聚合管道的C#驱动程序对一些数据执行投影操作,然后将其输出到目标表

目标表对“key”和“coid”字段的组合具有唯一的key约束,因此当管道运行时,如果任何文档试图违反此约束,它将崩溃

我需要做的是,每当一个文档试图违反约束时,我都希望记录有关该文档的一些信息,然后丢弃它,并让管道在不崩溃的情况下继续其操作

目前我是Mongo管道的新手,所以我刚刚将整个过程包装在一个try-catch块中。我意识到这是次优的,我正在寻找一些指导

有没有更好的方法来捕获重复的密钥异常并记录它们,同时防止管道崩溃

try
{
        new BsonDocument("$project", 
                        new BsonDocument
                        {
                            { "_id", 1 },
                            { "key", 1},
                            { "coid",
                            new BsonDocument("$concat",new BsonDocument[
                                  new BsonDocument("prefix-"),
                                  new BsonDocument("$first", "$values.SecId")])
                            }
                        })
        new BsonDocument("$out", "targetTable")
}
catch (Exception ex )
{
      _logger.log(ex.Message);
}