如何删除重复条目?
在这种情况下,Twitter 使用雪花作为JSON
推文中的唯一 ID 字段,如下所示。按 ID建立推文索引,并删除每个附加$tweet
的重复项?但是如何不递归地删除每一条推文......?
一个简单 FLWOR
的打印数据库中每条推文的 ID:
for $tweets in db:open("twitter")
return <tweet>{$tweets/json/id__str}</tweet>
结果:
thufir@dur:~/flwor/twitter$
thufir@dur:~/flwor/twitter$ basex tweetID.xq
<tweet>
<id__str>1224165280068382720</id__str>
</tweet>
<tweet>
<id__str>1224160851797643264</id__str>
</tweet>
<tweet>
<id__str>1224134565280862208</id__str>
</tweet>
...
<tweet>
<id__str>1224016596634603520</id__str>
</tweet>
<tweet>
<id__str>1224001430417297410</id__str>
</tweet>
<tweet>
<id__str>1223987662094249991</id__str>
</tweet>thufir@dur:~/flwor/twitter$
thufir@dur:~/flwor/twitter$
这里的重复是故意的,但正在寻找某种“清理”数据库的方法。
只是寻找一个大致的轮廓或方法。我的想法是将输出从一个管道传输xquery
到另一个,但我被困在如何构建索引上。大概这是数据库本身内置的功能,只需要利用正确的模块(可能)。
--
这看起来至少会返回一个不同的结果:
distinct-values(
for $tweets in db:open("twitter")
return ($tweets/json/id__str))
虽然我不太确定它是所有id__str
值的集合。