首页 > 解决方案 > 需要一个用于存储键数组的数据库,该数据库具有特定于数组的操作,例如“更新联合”和子数组选择

问题描述

我需要一个数据库来存储成对的键 - 数组行,如下所示:

===== TABLE: shoppingCart =====
user_id - product_ids
1       - [1, 2, 3, 4]
2       - [100, 200, 300, 400]

并且我希望能够在跳过重复值的同时将新数组合并到旧数组来更新一行。即,我想要这样的操作:

UPDATE shoppingCart SET product_ids = UNION(product_ids, [4, 5, 6]) WHERE user_id = 1

使第一行的 product_ids 列变为:

[1, 2, 3, 4, 5, 6]

我还需要诸如选择子数组之类的操作,例如:

SELECT product_ids[0:2] from shoppingCart

这应该导致:

[1,2]

对用于此类目的的最佳数据库有什么建议吗?

我需要使用的数组通常很长(包含大约 1,000 - 10,000 个长整数值(或长整数的字符串版本))

标签: arraysdatabasepostgresqlnosqlnosql-aggregation

解决方案


推荐阅读