我用的是最新的mongoid...

我该如何处理名为_scope的活动记录的mongoid类似功能:

class Comment
  include Mongoid::Document
  include Mongoid::Timestamps

  embedded_in :post

  field :body, :type => String

  named_scope :recent, :limit => 100, :order => 'created_at DESC'
...
end

推荐答案

它必须这样定义

scope :recent, order_by(:created_at => :desc).limit(100)

您可以查看mongoid文档中的scopes here

从页面

命名作用域是在类级别使用作用域宏定义的,可以链接起来在一个好的DSL中创建结果集.

class Person
  include Mongoid::Document
  field :occupation, type: String
  field :age, type: Integer

  scope :rock_n_rolla, where(occupation: "Rockstar")
  scope :washed_up, where(:age.gt => 30)
  scope :over, ->(limit) { where(:age.gt => limit) }
end

# Find all the rockstars.
Person.rock_n_rolla

# Find all rockstars that should probably quit.
Person.washed_up.rock_n_rolla

# Find a criteria with Keith Richards in it.
Person.rock_n_rolla.over(60)

Mongodb相关问答推荐

如何从MongoDB集合中获取第一个和最后一个元素?

带dropTarget的MongoDB renameCollection命令是原子的吗

所有文档中嵌套 struct 中的条件匹配-mongodb

MongoDB 按 created_at 月聚合

判断对象数组中的值是否存在golang

有没有一种方法可以找到一个文档并通过 Go 更改 mongodb 中的 id/value 来克隆它

mongo:在 mongodb 6.0 docker 容器上找不到命令

将子文档中的所有字段设置为 false,然后在单个查询中将第二个字段设置为 true

MongoDB 查询以包含多个字段的最常见值的计数

mongo.lock 文件有什么用?

mongo _id 字段重复键错误

MongoDB $或PHP中的查询

MongoDB:自动生成的 ID 为零

Mongoose 不创建新集合

如何在mongodb中删除数组的第n个元素

java.lang.IncompatibleClassChangeError:Implementing class Mongo

Cannot connect to MongoDB errno:61

无法在 mac os 10.9 上安装 mongodb php 驱动程序

如何在mongoose的嵌套填充中 Select 特定字段

聚合 $lookup 匹配管道中文档的总大小超过最大文档大小