會留里

弹指间,心无间

记一次坑爹的mongo操作

由于公司有新的需求,昨天在做评论的迁移。 之前的评论是存在子文档里面,现在需要单独地把所有评论放在comments collection里面。 迁移完成之后总评论数为4618条数据。 然后我想distinct一下这些评论的关联picture_id。

db.comments.distinct(‘picutre_id’).length
$> 4169

为什么返回的结果比总记录数还多一条的?这没道理,按道理来说distinct返回的结果应该是少于等于comments的总记录数的呀。

而且我还发现里面有很多picture_id都是重复出现的,distinct返回的结果肯定是必须少于comments的总记录数的。

最后通过大量的for验证,我发现居然是distinct的返回条数是 4169 而不是 4619

4169 和 4618 …