标签: mongoid

如何在Mongoid中获取模型的所有列名称

如何从MongoidRails中的模型中获取所有列名?

ruby mongoid

1
推荐指数
1
解决办法
415
查看次数

与mongoid的关系,我应该使用什么?

我正在使用带有mongoid的Ruby on Rails 3.1并试图在帖子,评论,用户和标签之间建立一个相当简单的关系.我对mongodb很新,而且一般都没有sql,所以我有点困惑.

我想要完成的是:用户,帖子和评论应该能够有多个标签.标签应具有名称,类型以及使用次数的计数.我需要能够获得所有可用的标签,以便用户可以从中进行选择.反之,能够从用户,帖子和评论中检索标签.

我已经阅读了很多关于它的内容,但似乎无法弄清楚我应该采取哪种方法.我应该使用参考或嵌入式关系吗?我看了几个宝石,但似乎没有人像我上面描述的那样工作.

旁注:我稍后将使用Tire作为我的搜索功能.

ruby-on-rails mongodb mongoid ruby-on-rails-3

1
推荐指数
1
解决办法
628
查看次数

如何使用rails将数据填充到mongodb?

我是rails应用程序的新手.我使用mongoid与mongodb建立联系.我使用命令生成了mongoid:migration

rails generate migration sample
Run Code Online (Sandbox Code Playgroud)

它创建,

db\migrate\20111222081138_sample.rb包含以下代码

class Sample < Mongoid::Migration
   def self.up
      sample.create(first_name: "Heinrich", last_name: "Heine")
   end    

   def self.down
   end
end
Run Code Online (Sandbox Code Playgroud)
my questions are
1.why schema.rb is not present in db.
2.how to populate data into mongodb using rails
3.how to list db collections in rails
4.how to produce bson file into rails
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongoid

1
推荐指数
1
解决办法
1263
查看次数

Mongoid:搜索数组

目前是否可以使用基于Mongoid的对象搜索BSON :: OrderedHashes数组?我的一个属性,让我们foobar课堂上调用它,看起来如下所示:

[#<BSON::OrderedHash:0x7f0 {"id"=>"4bf58dd8d48988d118951735", "name"=>"Grocery or Supermarket", "pluralName"=>"Grocery or Supermarkets", "shortName"=>"Grocery Store", "icon"=>#<BSON::OrderedHash:0x7f2 {"prefix"=>"https://foursquare.com/img/categories/shops/food_grocery_", "sizes"=>[32, 44, 64, 88, 256], "name"=>".png"}>, "primary"=>true}>] 
Run Code Online (Sandbox Code Playgroud)

我想查看我的所有对象,并在"name"属性的此顺序哈希中找到包含Grocery的每个对象.

ruby ruby-on-rails mongodb mongoid

1
推荐指数
1
解决办法
1676
查看次数

Rails 3:Mongoid返回带有数组的#<Mongoid :: Contextual :: Mongo:ID>标记

我有一个@contacts数组正在不同的模型控制器视图上迭代:

<%= @contacts.each do |item| %>
<p>
<%= item.name %>
</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是控制器的样子:

@user = current_user
@contacts =  Contact.desc('created_at').where(:user_id => @user.id)
Run Code Online (Sandbox Code Playgroud)

它按预期运行,但使用迭代文本删除此行:

#<Mongoid::Contextual::Mongo:0x007fe0bc0efbd8>
Run Code Online (Sandbox Code Playgroud)

到底他妈发生了什么?

iteration ruby-on-rails mongoid ruby-on-rails-3

1
推荐指数
1
解决办法
676
查看次数

带有Mongoid的Rails引擎

我正在创建独立的rails引擎应用程序,它将使用mongoid进一步添加到主应用程序中.所以,我就是这样开始的.

rails plugin new some_engine --mountable --skip-active-record
Run Code Online (Sandbox Code Playgroud)

然后在gem文件中:

gem 'mongoid', "~> 3.0.15"
Run Code Online (Sandbox Code Playgroud)

然后我运行此命令来生成mongo配置文件:

some_engine\test\dummy>rails g mongoid:config
Run Code Online (Sandbox Code Playgroud)

在test/dummy/config文件夹下生成mongoid.yml

现在,如果我生成一些模型,它仍然会调用活动记录

some_engine>rails generate scaffold post title:string
Run Code Online (Sandbox Code Playgroud)

它给出了输出:

 invoke  active_record
 create    db/migrate/20121219170013_create_some_engine_posts.rb
...........
Run Code Online (Sandbox Code Playgroud)

然后我更改了脚本/ rails文件夹下的rails文件,因为它具有:

require 'rails/all'
Run Code Online (Sandbox Code Playgroud)

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
Run Code Online (Sandbox Code Playgroud)

然后,如果我生成的东西,它仍然不会调用mongoid

some_engine>rails generate model post
Run Code Online (Sandbox Code Playgroud)

这里什么都没发生.

当我跑的时候

some_engine>rails generate scaffold post title:string

 invoke  resource_route.....
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一些使用Rails引擎的mongoid的东西吗?

ruby ruby-on-rails rails-engines mongoid ruby-on-rails-3

1
推荐指数
1
解决办法
1675
查看次数

如何将哈希投射到ruby中的对象中?

我正在使用Mongo并在数据库中存储哈希.但是后来当我检索哈希时,我不能再使用我的对象方法了?如何将检索到的Hash从数据库转换为TraitScore ???

class TraitScore < Hash
  def initialize(attrs = {}, options = nil)
    self['net']    = attrs[:net]   || 0.0
    self['total']  = attrs[:total] || 0.0
    self['score']  = attrs[:score] || 0.0
  end

  def inc_net(val)
    self['net'] += val
  end

  def inc_total(val)
    self['total'] += (val || 0).abs
  end

  def set_score(score)
    self['score'] = score
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby mongoid

1
推荐指数
1
解决办法
585
查看次数

Mongoid embed_one和has_one

最近在Mongoid上工作,我很困惑,在Mongoid中embed_one和has_one一样?如果不是,有什么区别和任何例子?

activerecord mongodb mongoid

1
推荐指数
1
解决办法
1155
查看次数

配置Mongoid关系以返回已排序的对象

我有两个关系为1-n的课程.像这样:

class Band
  include Mongoid::Document
  has_many :members
end

class Member
  include Mongoid::Document
  field :name, type: String
  field :joined, type: Date
  belongs_to :band
end
Run Code Online (Sandbox Code Playgroud)

现在,当我打电话时,band.members我得到了成员对象.我想要的是,如果我打电话band.members.last来获得加入最后一个的成员.我通过定义基于以下的<=>方法Member和排序来实现这一点joined:

band.members.sort.last
Run Code Online (Sandbox Code Playgroud)

如何将此行为设为默认值?我不想避免额外的排序调用.这是可能的,如果可以,怎么样?

ruby dsl queryinterface mongodb mongoid

1
推荐指数
1
解决办法
1440
查看次数

使用Mongoid在Rails中执行原子块事务

我在我的应用程序中使用Rails 4.1.4Mongoid.

我只是想知道是否有办法在Rails中使用Mongoid以原子方式执行块事务.

为了弄清楚,假设我有这个:

some_model_instance = SomeModel.find(some_id)
some_model_instance.some_attribute = "Some Attribute Value"
some_model_instance.save
other_model_instance = OtherModel.find(other_id)
other_model_instance.other_attribute = "Other Attribute Value"
other_model_instance.save
Run Code Online (Sandbox Code Playgroud)

我想将该代码包装在单个原子事务中,我的意思是,如果出现问题,我不希望将两个实例(some_model_instance,other_model_instance)都保存到数据库中.

我已经看到ActiveRecord有点像这样:

SomeModel.transaction do
    # do stuff I did above
end
Run Code Online (Sandbox Code Playgroud)

这对Mongoid有用吗?

谢谢你的帮助!!!.

transactions ruby-on-rails mongoid

1
推荐指数
1
解决办法
1386
查看次数