标签: mongoid

为什么我的mongoDB托管uong设置为mongoid.yml无法正常工作?

我正在使用mongoid.yml中的以下设置(不起作用),并且我已正确地将MONGOLAB_URI环境变量添加到我的heroku环境中:

production:
  sessions:
    default:
      another:
        uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下不起作用:

production:
  uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

这也行不通:

production:
  sessions:
    default:
      uri: <%= ENV['MONGOLAB_URI'] %>
Run Code Online (Sandbox Code Playgroud)

我在heroku推送时遇到以下错误:

Running: rake assets:precompile
       There is a configuration error with the current mongoid.yml.
       Problem:
       No database provided for session configuration: :default.
       Summary:
       Each session configuration must provide a database so Mongoid knows where the default database to persist to. What was provided was: {"another"=>{"uri"=>nil}}.
       Resolution:
       If configuring via a …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku mongodb mongoid

12
推荐指数
2
解决办法
7162
查看次数

Rails/ActiveModel将参数传递给EachValidator

我有一个非常通用的验证器,我想传递它的参数.

这是一个示例模型:

class User
  include Mongoid::Document

  field :order_type
  has_many :orders, inverse_of :user
  validates: orders, generic: true #i want to pass argument (order_type)

  field :task_type
  has_many :tasks, inverse_of :user
  validates: tasks, generic: true #i want to pass argument (task_type)
end
Run Code Online (Sandbox Code Playgroud)

和示例验证器:

class GenericValidator < ActiveModel::EachValidator
  def validate_each(object, attribute, value)
    if some_validation?(object)
      object.errors[attribute] << (options[:message] || "is not formatted properly") 
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法将参数传递给验证器,具体取决于验证哪个字段?

谢谢

validation aggregation activemodel mongoid ruby-on-rails-3

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

mongoid .limit在mongoid 3.1.x中不起作用

我在mongoid 3.1.0和最新3.1.3的rails中试过这样的东西..limit不起作用.下面它应该返回1行,但它返回所有(4)

码:

@go = Gallery.limit(1)
logger.info "count: #{@go.count}"
Run Code Online (Sandbox Code Playgroud)

输出:

 count: 4
 MOPED: 54.234.11.193:10055 QUERY database=mongohqtestdatabase collection=galleries selector=  {"$query"=>{}, "$orderby"=>{:_id=>1}} flags=[:slave_ok] limit=-1 skip=0 batch_size=nil fields=nil (276.2010
Run Code Online (Sandbox Code Playgroud)

女士)

哪个版本的mongoid与limit()有关?

ruby-on-rails mongodb mongoid

12
推荐指数
2
解决办法
6247
查看次数

Mongoid:和 - 或查询

我有这个问题:

User.or( { name: 'John' }, { name: 'Sara' } ).or( { age: 17 }, { age: 18 } ) )
Run Code Online (Sandbox Code Playgroud)

它返回下一个标准:

#<Mongoid::Criteria
  selector: {"enabled"=>true, "$or"=>[{"name"=>"John"}, {"name"=>"Anoun"}, {"age"=>17}. {"age"=>18}]}
  options:  {}
  class:    User
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

但我想做'和'两个'或'返回这样的东西:

#<Mongoid::Criteria
  selector: {"enabled"=>true, "$and"=>[
    {"$or"=>[{"name"=>"John"}, {"name"=>"Anoun"}]}, 
    {"$or"=>[{"age"=>17}, {"age"=>18}]}
  ] }
  options:  {}
  class:    User
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

怎么会是查询?

mongoid

12
推荐指数
2
解决办法
6456
查看次数

MongoDB中的集合ID长度

我是mongodb和堆栈溢出的新手.

我想知道为什么mongodb集合ID是24个十六进制字符?这有什么重要意义?

mongodb mongoid mongodb-query mongodb-.net-driver

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

Rails Mongoid无法进行身份验证 - 失败,错误13:"未授权查询my_db.my_collection"

据说这个问题已解决了最新版本的轻便摩托车但仍然在我身上发生.我有一个带有Mongoid的rails 4.2应用程序,为具有readWritedbOwner角色的MongoDB DB创建了一个用户,并在mong.conf文件中设置了auth = true. 我可以使用Mongo shell或使用Mongo驱动程序的简单Java应用程序,使用该用户凭据对数据库执行任何操作. 但是,当尝试使用Mongoid进行身份验证时,我总是会收到此错误:

失败,错误13:"未授权查询my_db.my_collection"

这是我的mongoid.yml文件的相关部分:

production:
  # Configure available database sessions. (required)
  sessions:
    # Defines the default session. (required)
    default:
      # Defines the name of the default database that Mongoid can connect to.
      # (required).
      database: my_db
      hosts:
              - localhost:27017
      username: my_username
      password: my_password
Run Code Online (Sandbox Code Playgroud)

我也尝试用服务器的远程地址替换主机并远程访问它(这与禁用的身份验证选项一起使用)没有成功.为了它的价值,我可以通过调试mpped/node.rb文件看到凭证,在ensure_connected方法中我看到@credentials变量包含我的用户名和密码我在这里缺少什么?谢谢!

ruby-on-rails mongodb nosql mongoid moped

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

为什么MongoDB可以创建唯一索引,但Mongoid不能?

在MongoDB shell中,如果我执行以下操作,则会创建索引,并且还会阻止插入重复记录:

db.analytics.ensureIndex({page: 1, some_id: 1, ga_date: -1}, {unique: true});
Run Code Online (Sandbox Code Playgroud)

但我认为Mongoid也可以这样做:http://mongoid.org/docs/indexing/

所以我有:

class PageAnalytic < Analytic
  include Mongoid::Document
  field :page, :type => String
  field :some_id, :type => Integer
  field :ga_date, :type => Time
  field :pageviews, :type => Integer
  field :timeOnPage, :type => Integer
  index(
    [
      [ :page, Mongo::ASCENDING ],
      [ :some_id, Mongo::ASCENDING ],
      [ :ga_date, Mongo::DESCENDING ]
    ],
    :unique => true
  )
end
Run Code Online (Sandbox Code Playgroud)

做一个

rake db:create_indexes
Run Code Online (Sandbox Code Playgroud)

但是,是否可以插入重复记录?

更新:这很奇怪,但是我在MongoDB shell中添加了索引并删除了集合,然后在MongoDB Shell或Mongoid中重新创建了索引,现在我可以将集合放到MongoDB shell中,然后rake创建索引,并使用mongoid两次添加相同的文档,mongod会说重复键的错误.

mongodb mongoid

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

MongoDB - 不了解如何使用游标循环集合

advertisers = db.dbname.find( 'my query which returns things correctly' );
Run Code Online (Sandbox Code Playgroud)

我现在意识到它将光标返回到集合列表.

但我不知道如何循环它们并获得每个集合.

我想尝试这样的事情:

advertisers.each(function(err, advertiser) {
    console.log(advertiser);
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用.但我没有从网上搜索看到如何让它实际上使用简单的JavaScript.

然后我有这个代码:

var item;

if ( advertisers != null )
{
   while(advertisers.hasNext()) 
   { 
      item = advertisers.next();
   }
}
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误: SyntaxError: syntax error (shell):1

非常感谢!

谢谢!

javascript mongodb mongoid

11
推荐指数
1
解决办法
2万
查看次数

恢复mongodb数据库.bson和.json文件

在这个名为my_backupI的文件夹中,我有一个包含所有模型/集合mongodb数据库转储,例如:

admins.bson
admins.metadata.json
categories.bson
categories.metadata.json
pages.bson
pages.metadata.json
.
.
.
Run Code Online (Sandbox Code Playgroud)

我有一个名为ubuntu_developmentmongodb 的数据库.我正在努力rails 3 + mongoid

如何将文件夹中的所有模型/集合导入/恢复my_backup到我的数据库ubuntu_development

非常感谢你!

database ruby-on-rails mongodb mongoid

11
推荐指数
2
解决办法
7185
查看次数

别名Mongoid中的引用关系字段

在下面的Mongoid模型中,我如何为belongs_to关系字段添加别名?

class Contact
  field :nm, :as => :name, :type => String # field aliasing
  embeds_one :address, :store_as => :ad  # embedded document aliasing
  belongs_to :account # referenced relation doesn't support store_as
end
Run Code Online (Sandbox Code Playgroud)

我想将帐户ID存储在一个名为ac而不是的字段中account_id.

mongoid ruby-on-rails-3

11
推荐指数
2
解决办法
1971
查看次数