如何将一个数组字段的长度添加到 Mongodb 文档中的另一个字段

How to add length of one array field into another field in Mongodb document

我是 Mongodb 的新手。我的 Mongodb 版本是 v4.4.2。我在 Mongo 中创建了一个集合,并且希望每次更新一条记录。 我收到此记录并搜索集合,如果该记录之前在集合中,我会更新它。除非,我插入记录。

dic = {"CST_NUM": "7101",
       "CNT_TRX_WEEK": 0.224,
       "cities": {"G": {"t": 6, "f": 0},
                  "K": {"t": 4, "f": 0}, "S": {"t": 1, "f": 0}},
       "cst_trm": ["123", "342"]
       }

此外,每条记录都有一个数组字段,当它更新时,我必须将数组字段的大小添加到记录的另一个字段中。它的名字是“cst_trm_cnt”。 我用这段代码更新了集合:

  mycollection.update_one(
 {"CST_NUM": dic["CST_NUM"]},
        {
            "$inc": {"CNT_TRX_WEEK": +dic["CNT_TRX_WEEK"],"cities.S.t": +dic["cities"]["S"]["t"]},
         "$addToSet": { "cst_trm": {"$each":dic["cst_trm"]}},
            "$addfield": {"cst_trm_cnt": {"$size":"cst_trm"}}
        }
    )  

但是,我在上面代码的最后一行收到这个错误:

 pymongo.errors.WriteError: Unknown modifier: $addfield. Expected a valid update modifier or pipeline-style update specified as an array, full error: {'index': 0, 'code': 9, 'errmsg': 'Unknown modifier: $addfield. Expected a valid update modifier or pipeline-style update specified as an array'}

你能指导我如何将数组的长度添加到 Mongo 中记录的另一个字段吗?

非常感谢任何帮助。

问题已解决。 更新后,在代码中,我必须在 $out 部分添加我已经创建的集合名称,除非 Mongo 构建新集合。代码如下:

 mytable.aggregate([
             {"$addFields": {"cst_trm_cnt":{"$size":"$cst_trm"}}},
             {"$out": "test"}
                   ])