如果使用以下内容
Analytic.collection.map_reduce(map, reduce,
:query => {:page => subclass_name},
:sort => [[:pageviews, Mongo::DESCENDING]]).find.to_a
Run Code Online (Sandbox Code Playgroud)
它不会排序pageviews.或者,如果是哈希数组:
Analytic.collection.map_reduce(map, reduce,
:query => {:page => subclass_name},
:sort => [{:pageviews => Mongo::DESCENDING}]).find.to_a
Run Code Online (Sandbox Code Playgroud)
它也不起作用.我认为它必须是一个数组的原因是指定要排序的第一个字段,等等.我也尝试了一个平面数组而不是像上面第一个代码中列出的数组数组,它也没有工作.
它不起作用吗?这是规范:http://api.mongodb.org/ruby/current/Mongo/Collection.html#map_reduce-instance_method
是否可以在mongoid中进行单向引用?
我想做的事情如下:
class User
include Mongoid::Document
include Mongoid::Timestamps
has_many :blogs, :class_name => "Blog", :inverse_of => :editor
has_one :active_blog, :class_name => "Blog", :inverse_of => :active_users
end
Run Code Online (Sandbox Code Playgroud)
和博客模型:
class Blog
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :editor, :class_name => "User", :inverse_of => :blogs
end
Run Code Online (Sandbox Code Playgroud)
所以,基本上,我希望用户存储引用其当前正在编辑/发布到的博客的对象ID.我不需要博客了解活跃用户,只有相反的方式.
看起来这样做的规范方法是在User上使用'belongs_to',在Blog上使用'has_many'.这确实有效,但它并不理想,因为它并没有真正在语义上表达两个模型之间的关系.
我是Mongoid的新手,并没有找到更好的答案.有没有更好的方法来建立这种类型的关系?
万分感谢!
我在MongoDB中有一组文档,其中包含有关推文大小的"描述"值.我需要从中生成趋势主题列表.显然这是一个已解决的问题,但我无法找到一个明确的答案/宝石,无需自己编写代码即可完成工作.
我在我的应用程序中使用ruby&mongoid.
是否有任何红宝石宝石可以帮助或处理这个?谢谢.
我需要选择与给定事务具有相同类型的事务.我需要检查它是否没有返回所有nil类型的事务.
使用ActiveRecord,我可以轻松编写:
given_transaction = Transaction.first
needed_transactions = Transaction.where('type != nil and type = ?', given_transaction.type)
Run Code Online (Sandbox Code Playgroud)
和所有的作品
当我尝试用mongoid写同样的东西时:
needed_transactions = Transaction.where(:type => given_transaction.type, :type.ne => nil)
Run Code Online (Sandbox Code Playgroud)
它生成以下查询:
"query"=>{:type=>{"$ne"=>"planned"}}
Run Code Online (Sandbox Code Playgroud)
换句话说,mongoid忽略第一次检查并仅使用对该字段的最后一次检查.
我尝试了"all_of","all_in","和" - 但仍然无法找到有效的解决方案.
也许我做错了什么......因为这个......我的世界正在颠倒...... :(((
我有一个包含数组的文档:
{
_id: ObjectId("515e10784903724d72000003"),
association_chain: [
{
name: "Product",
id: ObjectId("4e1e2cdd9a86652647000003")
}
],
//...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在集合中搜索数组中name第一项association_chain与给定值匹配的文档.
我怎么能用Mongoid做到这一点?或者,如果您只知道如何使用MongoDB完成此操作,如果您发布一个示例,那么我可能想知道如何使用Mongoid.
问题: Heroku在部署并从'master'运行后回应我这个错误:
12月31日10:35:49 rsappqqsag app/web.1:4ms完成500内部服务器错误
12月31日10:35:49 rsappqqsag app/web.1:4ms完成500内部服务器错误
12月31日10:35:49 rsappqqsag app/web.1:Optionable :: Unknown(:safe是一个未知选项.有效选项是:: write,:read,:database,:max_retries,:pool_size,:retry_interval,:refresh_interval ,:down_interval,:ssl,:timeout,:instrumenter.):
12月31日10:35:49 rsappqqsag app/web.1:app/controllers/bing_controller.rb:16:在'index'中
12月31日10:35:49 rsappqqsag app/web.1:Optionable :: Unknown(:safe是一个未知选项.有效选项是:: write,:read,:database,:max_retries,:pool_size,:retry_interval,:refresh_interval ,:down_interval,:ssl,:timeout,:instrumenter.):
12月31日10:35:49 rsappqqsag app/web.1:app/controllers/bing_controller.rb:16:在'index'中
我的堆栈:
我的Gemfile: http ://pastebin.com/h9SiezJ8
我的mongoid.yml: http ://pastebin.com/TW8pswaw
我已经完成了devcenter.heroku.com/articles/mongolab的所有步骤,但没有.rails的应用程序没问题,正常运行,但是当我调用与Mongo连接的函数时,响应500服务器错误.
感谢你们.
为什么我会收到此错误?我没有想法.
undefined method `update_attributes' for #
码:
exists = Vote.where(comment_id: @comment.id).exists?
if exists
update_vote = Vote.where(comment_id: @comment.id)
update_vote.update_attributes(value: 5)
redirect_to :back
else
Run Code Online (Sandbox Code Playgroud) 我是mongoid和mongodb的新手.我有一个型号名称like_count(account_id, create_at, updated_at, like_cnt).我需要按照排序顺序计算每个帐户的总和.我尝试过类似的东西
LikeCount.group_by(&:account_id).sum(:like_cnt)
Run Code Online (Sandbox Code Playgroud)
但似乎是错的.
假设我有名称的模型ItemAvailability是有product_id,vendor_id,shop_id
我想GROUP_BY上product_id,并选择那些product_id已经distinct(vendor_id)有计数> = 3.
使用MongoID这是可行的吗?
样本数据:
ItemAvailability
product_id vendor_id shop_id
1 1 1
1 1 2
1 1 3
2 2 1
2 2 2
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
Run Code Online (Sandbox Code Playgroud)
在上面的数据集中,结果应该是1,因为它在所有供应商1,2和3中都可用.
2不应该是结果,因为它只由供应商2提供.
如果需要更多细节,请告诉我?
如何查询Mongoid,'where not not null'?例如
where('comment_id IS NOT NULL')
Run Code Online (Sandbox Code Playgroud)
怎么用mongoid?