1

我刚刚在 Rails 4 和 Mongoid 4 beta 中启动了一个新项目,而我在 Mongoid 3 中经常使用的旧行为不再起作用。

在我以前写之前,我会得到一个带有andModel.only("field").to_a的数组,所有其他字段都设置为 null。idfield

如果我尝试在 Mongoid 4 中执行此操作,我会得到:(Object doesn't support #inspect)

Model.only("field").map {|e| e.field}虽然不像以前那样工作。id不再包含,ActiveModel::MissingAttributeError如果我尝试访问该 ID ,我会得到。

我知道我可以使用Model.pluck("field"),但这不会返回文档数组。

这些变化是真实的还是我错过了什么?

编辑:当我写这篇文章时,我尝试了包括它id并且它正在工作。IE。Model.only("id", "field").to_a像以前一样工作,但我的问题仍然有效。我是否必须包含idnow 才能获得数组documents

4

1 回答 1

0

这是 Mongoid 4 上的新行为。正如您所说,您可以将“id”字段添加到唯一方法,它应该可以工作。您还可以使用 pluck 方法获取所需的字段数组。就像是:

Model.all.pluck("id", "field")。正如你所说,你已经知道采摘,这就是要走的路。

干杯。

于 2014-08-16T21:11:11.380 回答