0

我有带有 mongoid 模型的 rails 应用程序。这个模型中有一个计数器字段,它是整数。我想通过这个字段转换为布尔值对条目进行排序,比如

MyModel.desc("counter::boolean") # casting in postgres-like syntax

所以 counter > 0 的条目首先出现,而 counter == 0 的条目最后出现。

我还在这个表达式上使用 created_at 排序,它只适用于相同的计数器值,这就是为什么我只需要两个可能的值。不一定是真/假,它可能是 1/0。

Mongodb 不支持自定义排序功能(有开放票)。

可以在 mongoid/mongodb 中进行这种转换吗?如果没有,也许有任何解决方法?

4

1 回答 1

1

不是很漂亮的方式,但是您可能会在文档中创建具有值的附加字段,具体取决于您的排序方案,例如:“order”:将值转换为布尔值,然后按它排序。
令人惊讶的是 - 这是绕过 mongodb 限制的一种非常常见的方法。

于 2012-12-06T13:25:33.287 回答