标签: mongoid

mongoid,will_paginate,排序不适用于Mongoid标准DSL

根据github上mongoid的自述文件,我可以做一些奇特的查询,比如Person.select(:first_name,:last_name).where(:title =>"Sir").skip(10).limit(10).paginate

我和will_paginate(3.0.pre2)一起尝试了这个

@companies = Company.paginate(:per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)

--->工作正常

@companies = Company.all.paginate(:per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)

--->排序不再起作用了

我试过了

@companies = Company.where(:name=>/^#{params[:search]}/).paginate( :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)

- >不起作用

然后

@companies = Company.paginate(:conditions=>{:name=>/^#{params[:search]}/}, :per_page=>5, :page=>params[:page], :sort => [sort_column, sort_direction])
Run Code Online (Sandbox Code Playgroud)

--->工作

但我认为搜索功能应该在模型中而不是在控制器中!?

sorting will-paginate mongoid

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

使用MongoDB/Mongoid和计算字段聚合函数

我正在迁移现有的Rails应用程序以使用MongoDB(使用Mongoid),而且我在查找如何进行聚合时遇到一些麻烦,就像使用MySQL一样.

以前我有类似的东西SELECT DATE(created_at) AS day, SUM(amount) AS amount GROUP BY day,哪个会返回一个你可以在模板中循环的集合,如下所示:

:day => '2011-03-01', :amount => 55.00 
:day => '2011-03-02', :amount => 45.00
etc...
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在Mongoid中做到这一点?该模型非常简单:

class Conversion
  include Mongoid::Document
  include Mongoid::Timestamps

  field :amount,      :type => Float, :default => 0.0
  ...
  # created_at generated automatically, standard Rails...
end
Run Code Online (Sandbox Code Playgroud)

谢谢!

-Avishai

mapreduce ruby-on-rails mongodb mongoid mongodb-query

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

Mongoid ::错误:: MixedRelations

我有一个用户模型嵌入" 一对多 "的关注列表,如下所示:

class User 
  include Mongoid::Document

  field :uid
  field :name     
  field :user_hash

  embeds_many :watchlists
end


class Watchlist
  include Mongoid::Document

  field :html_url
  field :description

  #field :name
  field :fork_, :type => Boolean

  field :forks, :type => Integer
  field :watchers, :type => Integer

  field :created_at, :type => DateTime
  field :pushed_at, :type => DateTime

  field :avatar_url

  embedded_in :user
  has_and_belongs_to_many :tags
end
Run Code Online (Sandbox Code Playgroud)

监视列表还应引用多对多 Tag模型,反之亦然:

class Tag
  include Mongoid::Document
  field :name, type: String

  has_and_belongs_to_many :watchlists
end
Run Code Online (Sandbox Code Playgroud)

无论如何,这导致了一个错误,似乎不可能出现这种"混合"关系:

Mongoid::Errors::MixedRelations (Referencing a(n) Watchlist document from the …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongoid

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

删除嵌入文档的Mongoid不会持久存在

我已经遇到了几个小时的问题,并且用Google搜索自己毫无意义.

我有一个带有嵌入式文档的Mongoid模型,如下所示:

embeds_many :tags, :as => :taggable
Run Code Online (Sandbox Code Playgroud)

出于某种原因,尝试删除此文档似乎在控制台中工作,但文件在重新加载后返回.我尝试过以下方法:

model.tags.delete_all

model.tags.each do |tag|
  tag.delete
end

model.tags.destroy_all
Run Code Online (Sandbox Code Playgroud)

完成上述所有操作后,我可以确认model.tags返回一个空数组.然后为了安全起见,我甚至打电话给model.save.如果我重新加载模型,所有嵌入的标签都会返回.

使用Mongoid删除嵌入文档的正确方法是什么?

ruby-on-rails mongodb mongoid

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

如何删除mongodb数据库?

Mongodb noob问题!

我想做一些类似于rake db:drop但是在mongodb中,以清除我的文档的内容.

到目前为止,我已经找到命令db.dropDatabase()但是我必须从mongodb交互式shell输入它吗?(有关如何进入shell的任何提示将不胜感激,我尝试按照Mongodb网站上的说明进行操作但我无法启动并运行).

有没有更简单的方法从命令行执行此操作?

编辑:我尝试打字mongo,shell弹出大声笑.

mongodb mongoid ruby-on-rails-3

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

我应该在mongodb中使用稀疏索引作为布尔标志吗?

我有一个布尔标志:finished.我是不是该

A: index({ finished: 1 })
B: index({ finished: 1 }, {sparse: true})
C: use flag :unfinished instead, to query by that
D: other?
Run Code Online (Sandbox Code Playgroud)

Ruby mongoid语法.我的大多数记录都会有flag finished = true,而且大多数操作显然都是未完成的.我不确定我是否理解何时使用稀疏,何时不使用.谢谢!

indexing mongodb mongoid

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

Mongoid如何插入嵌入式记录?

我有2个课程......文章和评论(嵌入文章中).

class Article
   include Mongoid::Document
   field :name, type: String
   field :content, type: String
   field :published_on, type: Date

   validates_presence_of :name

   embeds_many :comments
end
Run Code Online (Sandbox Code Playgroud)

还有一个

class Comment
  include Mongoid::Document
  field :name, type: String
  field :content, type: String

  embedded_in :article, :inverse_of => :comments
end
Run Code Online (Sandbox Code Playgroud)

这个mongodb文档的Json表示是:

{
   _id:ObjectId("50ae35274b6b5eaa77000001"),
   author_id:ObjectId("50ae3b1e4b6b5e8162000001"),
   comments:[
      {
         _id:ObjectId("50ae380e4b6b5e0c34000001"),
         name:"fak",
         content:"i like this article
      }

   ],
   content:"article about nothing",
   name:"my sweet article",
}
Run Code Online (Sandbox Code Playgroud)

如何在轨道上使用mongoid在此文档中插入另一条注释?

谢谢Fak

ruby-on-rails mongodb mongoid

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

我如何在rails上的ruby中生成mongoid.yml文件

当我运行此命令"rails g mongoid:config" 然后显示此错误消息

"Could not find generator mongoid:config"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?请帮我...

我已经加入gem "mongoid",并gem "rspec"在我的Gemfile

ruby-on-rails mongodb mongoid

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

查询Mongoid 5.1中的日期范围

你如何使用Mongoid 5.1查询日期范围?我正在尝试类似的东西

Data.find(sid: 7, :created_at => (Time.parse('5-07-2015')..Time.now ))
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误

有任何想法吗?

ruby-on-rails mongodb mongoid

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

Mongoid仅使用created_at时间戳

无论如何,是否只为只读文档设置了created_at时间戳?

我目前有以下消息类别

class Message
  include Mongoid::Document
  include Mongoid::Timestamps

  field :text,      type: String

  belongs_to :user, foreign_key: :user_id
  embedded_in :conversation
end
Run Code Online (Sandbox Code Playgroud)

一切正常,但是对于每条消息,我都在使用updated_at字段浪费空间,该字段始终与created_at相同

ruby-on-rails mongoid

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