如何从Mongoid标准中获得明显的结果?

pic*_*rdo 7 mongoid

当我尝试查询Mongoid标准的结果并仅保留字段不同的文档时,我感到非常沮丧.这样做:

Books.all.distinct(:name)
Run Code Online (Sandbox Code Playgroud)

..only返回名称字段,而不是文档.

另外使用uniq另一个问题中所述的循环对我来说不起作用.

Books.all.uniq{|x| x.name} # Returns non-unique results
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

Jay*_*Jay 0

我不确定我是否完全理解您想要实现的目标?数据库中的“名称”字段是否有唯一约束?

如果是这样,您只需检索所有书籍名称,要检索书籍本身,您将调用基本对象。

如果没有,每个名字都会有多本书,用不同的方式抓取是没有意义的。也许您正在寻找的是 groupby 函数?要将所有具有相同名称的书籍分组,您可以调用Books.all.group_by{|book| book.name},但由于这是针对 Web 服务器而不是在数据库级别运行的,因此对于任何合理数量的记录来说,速度都会非常慢。

您最好的选择可能是执行以下操作之一: