草庐IT

ruby - ActiveRecords 选择(:id). 收集与采摘(:id) methods: Why is pure AR "pluck" slower?

我正在尝试从我的文章模型中获取所有ID。我可以通过两种方式做到这一点:Article.select(:id).collect{|a|a.id}ArticleLoad(2.6ms)SELECT"articles"."id"FROM"articles"或2.2.1:006>Article.pluck(:id)(4.3ms)SELECT"articles"."id"FROM"articles"什么给了?为什么AR比Ruby版本慢?即使我对Ruby方法进行基准测试,它似乎也更快:Benchmark.measure{Article.select(:id).collect{|a|a.id}}Art

sql - 具有相同名称列的连接表上的 Rails ".pluck"返回一个值,然后返回 nil

Experimenthas_many:featuresFeaturebelongs_to:experimentExperiment.where("experiments.id=1").joins(:features).pluck("features.id","experiments.id")我希望这会返回每个功能的ID和实验的ID。[[1,1],[2,1],[3,1],#....]相反,这会返回实验的id,然后返回nil[[1,nil],[1,nil],[1,nil],#....]这在三个方面很奇怪:即使它是一个内部联接并且只返回一个实验,我也能够从功能(features.name)中

ruby 轨道 4 : Pluck results to hash

我怎样才能转:Person.all.pluck(:id,:name)到[{id:1,name:'joe'},{id:2,name:'martin'}]无需.map每个值(因为当我在.pluck中添加或删除时,我必须对.map做同样的事情) 最佳答案 您可以映射结果:Person.all.pluck(:id,:name).map{|id,name|{id:id,name:name}}如@alebian所述:这比效率更高Person.all.as_json(only:[:id,:name])原因:pluck仅返回使用的列(:id,:na

ruby-on-rails - 如何将单个列的值放入数组中

现在我正在做这样的事情来选择一列数据:points=Post.find_by_sql("selectpointfromposts")然后将它们传递给一个方法,我希望我的方法保持不可知,现在必须从我的方法中调用hash.point。如何快速将其转换为数组并将数据集传递给我的方法,或者有更好的方法吗? 最佳答案 在Rails3.2中有一个pluckmethod为此就像这样:Person.pluck(:id)#SELECTpeople.idFROMpeoplePerson.pluck(:role).uniq#uniquerolesfrom

ruby-on-rails - Rails 中的 pluck 和 collect 有什么区别?

这里有两个示例代码。第一个collect:User.first.gifts.collect(&:id)第二个pluck:User.first.gifts.pluck(:id)它们在性能或其他方面有什么区别吗? 最佳答案 pluck在数据库级别。它只会查询特定的字段。Seethis.当你这样做时:User.first.gifts.collect(&:id)由于基于Enumerable的方法,您拥有加载了所有字段的对象,并且您只需获取id。所以:如果在Rails4中仅需要id,请使用ids:User.first.gifts.ids如果您

rxjs - RxJS 中的 map 和 pluck 有什么区别?

我试图理解map之间的区别和pluckRxJS中的转换运算符。谁能帮我解决这个问题? 最佳答案 文档说Pluck:Likemap,butmeantonlyforpickingoneofthenestedpropertiesofeveryemittedobject.因此,假设你有[{name:'Joe',age:30,job:{title:'Developer',language:'JavaScript'},{name:'Sarah',age:35}]并且您想要一份包含所有职位的列表。使用map会有点痛苦(因为job的可空性),但是使

javascript - 使用低破折号/下划线从 _.pluck 获取对象

我有一个结构如下的对象:varmy_object={first_item:{important_number:4},second_item:{important_number:6},}但是,我想要一个结构如下的对象:{first_item:4,second_item:6,}我本来希望能够用_.pluck得到这个结果:_.pluck(my_object,"important_number")但这给了我:[0:4,1:6]很好,但我需要对象的实际名称。我摆弄了一下,最后得到了这个:_.reduce(my_object,function(memo,val,key){memo[key]=val

javascript - 在 knockout 可观察数组上使用 underscore.js "pluck"

我有一个可观察的对象数组,我想使用underscore.js提取值例如:ko.observableArray([{id:ko.observable(1),name:ko.observable("name1")},{id:ko.observable(2),name:ko.observable("name2")},...])我只想提取对象内部的值,而不是整个可观察值。我可以只用一个命令来完成吗?我试过:_.pluck(myArray(),"id()")和_.pluck(myArray(),"id"())但是它们分别返回未定义数组和“id不是函数”。谢谢! 最佳答

javascript - _.pluck 的对象等价物是什么

我已经重新实现了我自己需要的版本,但我怀疑它已经包含在下划线中,因为它非常简单并且与许多其他功能密切相关。但我想不出它应该叫什么。基本上,我想要的是_.pluck的一个版本,它可以处理对象并返回一个对象而不是数组(及其关联的键)。例如,如果我有这样一个对象:elements:{steam:{temperature:100,color:'orange',state:'gas'},water:{temperature:50,color:'blue',state:'liquid'},ice:{temperature:0,color:'white',state:'solid'}}我想调用_.s

PHP : Laravel - Array push after using eloquent pluck method

这是我的查询$RecipientList=Employees::select(DB::Raw('CONCAT(first_name,"",last_name)asemployee_name'),'email')->pluck('employee_name','email');它给我想要的正确结果,但是在我执行查询之后,我还有1个键=>值对要插入结果数组。如果我打印当前结果,它是这样的。Illuminate\Support\CollectionObject([items:protected]=>Array([punit@*****.com]=>PunitGajjar[milan@****