云函数如何只删除第一个符合条件的数据?
发布于 4 年前 作者 wzhu 6164 次浏览 来自 问答

云函数使用addToSet可以避免重复往数组中添加相同数据。

但如果想从数组中删除数据,筛选出多个符合条件的数据,如何只删除第一个?用pull就都删掉了。用shift又只能删数组里的第一个,而不是删符合条件的第一个。

3 回复

因为数据没有指定性,所以按时间戳或者id方式,现在都达不到想要的效果。

我从网上看到一个方法勉强能用,就是remove,可以只remove掉符合条件的一个数据。但其实不是删除这个数据,是把数据值变成null了。

我又把所有null都pull出来,勉强达到想要的效果了。 谢谢大家!

普通数组字段这种操作目前云数据库应该不行,如果是对象数组字段,一个思路是人为制造差异,比如每个对象入库的时候加一个时间戳,这样查询出符合条件的数据后,再利用现有条件和查询出来的第一个数据的时间戳来pull

获取第一个数据的docid,根据id删除

回到顶部