rails mongodb 查找并删除重复项
rails mongodb find and delete duplicate
有什么可以让这个算法更快的吗?
我正在获取此模型(工件)的所有文档,对于每个文档,我想知道是否有重复项,如果有,我将其删除。
Artifact.all.to_a.each do |n|
image = n.image_original
thumb = n.image_thumbnail
count_value = Artifact.where(:image_original => image,
:image_thumbnail => thumb).all.to_a.count
if count_value > 1
n.destroy!
end
end
您需要像这样对 Artifacts 集合调用 uniq
方法:
@all_artifacts = Artifact.all
@distinct_artifacts = @all_artifacts.uniq {|artifact| artifact.image_original}
您可以像这样使用 Criteria#distinct
Artifact.distinct(:image_original)
,但这只会 return 仅具有该字段的不同值。
有什么可以让这个算法更快的吗?
我正在获取此模型(工件)的所有文档,对于每个文档,我想知道是否有重复项,如果有,我将其删除。
Artifact.all.to_a.each do |n|
image = n.image_original
thumb = n.image_thumbnail
count_value = Artifact.where(:image_original => image,
:image_thumbnail => thumb).all.to_a.count
if count_value > 1
n.destroy!
end
end
您需要像这样对 Artifacts 集合调用 uniq
方法:
@all_artifacts = Artifact.all
@distinct_artifacts = @all_artifacts.uniq {|artifact| artifact.image_original}
您可以像这样使用 Criteria#distinct
Artifact.distinct(:image_original)
,但这只会 return 仅具有该字段的不同值。