我需要在mongo中将无序的ID列表存储为"黑名单",并将它们纯粹用于检查原因.
blacklisted_ids= [1,23......100002942234... some very large number]
Run Code Online (Sandbox Code Playgroud)
但是将其存储在单个文档中是不可行的,因为我将非常快地完成2Mb的限制.
我可以在mongodb中创建一个集合,并将每个id作为文档插入,但它似乎有点矫枉过正,因为我想要的只是检查是否存在.
这样做的正确方法是什么?
注意:我使用的是mongoid/rails.=)
我在我的应用程序中使用了carrierwave.问题是它在开发模式下运行良好.但是当与乘客一起部署到nginx时会抛出以下错误:
/home/webserver/raw/releases/20110919033346/app/models/category.rb:11: undefined method `mount_uploader' for Category:Class (NoMethodError)
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:454:in `load'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:454:in `load_file'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:453:in `load_file'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:340:in `require_or_load'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:300:in `depend_on'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:216:in `require_dependency'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/rails/mongoid.rb:55:in `load_model'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/rails/mongoid.rb:18:in `load_models'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/rails/mongoid.rb:17:in `each'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/rails/mongoid.rb:17:in `load_models'
from /opt/ruby/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/paths.rb:102:in `each'
from /opt/ruby/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/paths.rb:102:in `each'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/rails/mongoid.rb:16:in `load_models'
from /opt/ruby/lib/ruby/gems/1.8/gems/mongoid-2.0.1/lib/mongoid/railtie.rb:88:in `_callback_before_5'
from /opt/ruby/lib/ruby/gems/1.8/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:420:in `_run_prepare_callbacks'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/callbacks.rb:40:in `initialize'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:33:in `new'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:33:in `build'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /opt/ruby/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:209:in `inject'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `each'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `inject'
from /opt/ruby/lib/ruby/gems/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build' …Run Code Online (Sandbox Code Playgroud) 我在MongoDB中有一个文档集合,如果将它保存为BSON :: ObjectId,则该属性存储为字符串.
集合名称是,foo并调用该字段bar.让每个字段bar将其现有值转换为BSON :: ObjectId的实例的最佳方法是什么?
我是mongoid的新人,我有两个基本的(我认为)问题.什么是在Mongoid中存储引用数组的最佳方法.这是我需要的简短示例(简单投票):
{
"_id" : ObjectId("postid"),
"title": "Dummy title",
"text": "Dummy text",
"positive_voters": [{"_id": ObjectId("user1id")}, "_id": ObjectId("user2id")],
"negative_voters": [{"_id": ObjectId("user3id")}]
}
Run Code Online (Sandbox Code Playgroud)
它是正确的方式?
class Person
include Mongoid::Document
field :title, type: String
field :text, type: String
embeds_many :users, as: :positive_voters
embeds_many :users, as: :negative_voters
end
Run Code Online (Sandbox Code Playgroud)
还是错了?
我也不确定,这种情况可能是一个糟糕的文档结构?如果用户已经投票并且不允许用户投票两次,我怎么能优雅地获得?也许我应该使用另一种文件结构?
我得到了来自服务器的一些记录有10分钟的时间间隔(1小时,我会得到6个文件),我想要做的地图减少在接下来的几个小时,每1小时,我将不得不做下一组的地图减少6个文件与去年小时文件我将如何解决这个问题?帮助我在过去1个月里混淆了frm谢谢你Sushil Kr Singh
这似乎应该是直截了当的工作.MongoDB/BSON具有本机二进制类型,并且Moped驱动程序支持它.但是当我尝试在我的rails项目中创建一个脚手架时
rails g scaffold image png:binary source:string
Run Code Online (Sandbox Code Playgroud)
我得到这个模型:
class Image
include Mongoid::Document
field :png, type: Binary
field :source, type: String
end
Run Code Online (Sandbox Code Playgroud)
这会产生此错误:
uninitialized constant Image::Binary
Run Code Online (Sandbox Code Playgroud)
使用Rails 3.2.8和Mongoid 3.0.9.
我有这样的麻烦:当我创建对象并设置一些日期时间它是在UTC TimeZone中保存数据库.这是一个例子:
//showing full list of object properties
Grant _id: 5108ee29e6b564611400000, start_date: 2013-01-30 09:56:27 UTC
//then showing a.start_date
Wed, 30 Jan 2013 13:56:27 +0400
Run Code Online (Sandbox Code Playgroud)
我试图禁止数据库使用UTC.这是mongoid.yml:
development:
options:
raise_not_found_error: false
sessions:
default:
use_activesupport_time_zone: true
use_utc: false
database: test_mongoid_production
hosts:
- localhost:27017
options:
consistency: :strong
Run Code Online (Sandbox Code Playgroud)
并在application.rb中:
config.time_zone = 'Moscow'
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有人可以帮忙解决这个问题吗?
Authlogic需要许多Active Record功能,这些功能在Active Model中不可用,因此在Mongoid中不可用.Authlogic如何与Mongoid一起使用?
我刚刚使用布尔字段更新了我的一个模型。我已将字段的默认值设置为true。如何以使我将该字段设置为true或没有此字段(默认值)的所有文档的方式查询此字段。
shaunstanislaus@Master ~/workspace/mongodb_rails_project/sodibee (master) $ rails g mongoid:config
Could not find generator 'mongoid:config'. Maybe you meant 'migration' or 'controller' or 'generator'
Run `rails generate --help` for more options
Run Code Online (Sandbox Code Playgroud)