0

我在 Mongoid 中有以下文档结构:

class Post
    include Mongoid::Document
    field "title", type: String
    field "body", type: String
    field "category_name", type: String
    field "category_id", type: Integer
end

我需要选择所有现有类别的帖子进行搜索。如果这是 SQL,我会:

SELECT distinct category_name, category_id FROM posts 

我将如何在 Mongoid 的 SQL 查询中执行此操作?

4

1 回答 1

0

如果您希望模型仅返回 category_name 和 category_id 字段,请使用“only”。Post.all.only(:category_name, :category_id)将返回数据库的所有帖子,但仅返回这 2 个属性的值,所有其他属性将为 nil。

但是在 Mongoid 3.1 上你可以这样做Post.distinct(:category_name),它会以数组的形式返回帖子的不同类别名称的列表。在旧版本的 mongoid 上,您Post.all.distinct(:category_name)可以获得相同的回报。

于 2013-03-28T03:30:10.323 回答