我刚刚在Rails4和Mongoid4beta中启动了一个新项目,我在Mongoid3中经常使用的一个旧行为不再起作用了。
在我用id和field编写Model.only("field").to_a并得到一个数组之前,所有其他字段都设置为空。
如果我在Mongoid4中尝试这样做,我会得到:(Object doesn't support #inspect)
Model.only("field").map {|e| e.field}正在工作,尽管不像以前那样。不再包含id,如果我尝试访问id,则会得到ActiveModel::MissingAttributeError。
我知道我可以使用Model.pluck("field"),但是它不会返回一个文档数组。
这些变化是真的吗,还是我错过了什么?
编辑:在我写这篇文章的时候,我试着把id包括进来,它工作起来了。即。Model.only("id", "field").to_a像以前一样工作,但我的问题仍然有效。现在是否必须包含id才能获得documents数组
发布于 2014-08-17 05:11:11
这是Mongoid4上的一个新行为。正如你所说的,你可以将"id“字段添加到唯一的方法中,它应该可以工作。你也可以使用pluck方法来获取你想要的字段的数组。类似于:
Model.all.pluck("id",“Model.all.pluck”)。正如您所说的,您已经知道pluck了,这就是我们要做的..
干杯。
https://stackoverflow.com/questions/23651078
复制相似问题