【发布时间】:2021-01-18 20:14:56
【问题描述】:
我有两个集合 - col1 和 col2 在同一个数据库下。这些集合包含具有两个字段的文档 - _id 和 arr。我正在尝试查找相同 _id 的匹配项,每当找到匹配项时,我想连接两个 arr 数组。
在 col1 我有以下文件
{'_id': 'shalom', 'arr': [1, 2, 3]}
在 col2 我有以下文件
{'_id': 'shalom', 'arr': [4, 5, 6]}
我想在 col1 中创建一个看起来像这样的新文档
{'_id': 'shalom', 'arr': [1, 2, 3, 4, 5, 6]}
到目前为止我所做的(不起作用)是
merge_query = {'into': col1,
'on': '_id',
'whenMatched': [
{'$addFields': {
'processed_words': {'$add': ['$arr', '$$new.arr']}}}],
'whenNotMatched': 'insert'}
col2.aggregate([{'$project': project_query},
{'$merge': merge_query}])
运行时出现以下异常
pymongo.errors.OperationFailure: $add only supports numeric or date types, not array, full error: {'ok'...
所以看起来差不多了,只需要能够支持数组串联即可。
【问题讨论】:
标签: mongodb concatenation pymongo