首页 > 解决方案 > Aerospike - 如何使用 Java 在给定列表中插入唯一项?

问题描述

如果我运行下面的代码,来自 getUserName() 的值将附加到列表中。但是,如果我再次运行它,则会再次插入相同的值。我的问题是,如何确保该值仅附加一次(唯一)?

我当前的代码

Operation operation = ListOperation.append("names", Value.get(usr.getUserName()));
Record record = client.operate( policy, key, operation );

示例:将“名称”bin 视为字符串列表。

'LIST["T1", "T2"]'

如果我再次添加 T2,列表应该保持不变。

标签: javaaerospike

解决方案


ListOperation.append()可以带 a ListPolicy,它带标志。ListWriteFlags对于诸如此类的写入操作,如果您希望仅在新的唯一列表元素时才添加值,则应将其组合起来ADD_UNIQUENO_FAIL

https://www.slideshare.net/RonenBotzer/asug-tlvmeetup2talk


推荐阅读