如何将一个数组字段的长度添加到 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"}
])
我是 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"}
])