问题标签 [mongoid4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
269 浏览

mongoid - MongoDB基于多个字段选择文档

假设我们在一个集合中有以下文档:

我想在哪里获取所有文件(a = 1 and b = 7) or (a = 2 and b = 8)。查询将始终仅在字段a和上b,但可能会有一万个可能的ab对(组合)。

有没有办法使用运算符进行这种查询$in

如果没有,最好的方法是什么?

0 投票
1 回答
1244 浏览

ruby-on-rails - 持久化后如何检索mongoid文档_id?

对不起,如果这是微不足道的,但我找不到答案,所以也许我不知道如何问这个问题。我有一个简单的案例:

我愿意:

之后我想使用新对象的 id 来启动一个新的后台工作进程。我找不到如何获取新创建对象的 _id?save 方法返回一个状态。

你能帮我解决这个问题吗?

0 投票
1 回答
75 浏览

ruby-on-rails-4 - Rails 部署应用程序版本特定更新脚本

我正在使用 Capistrano 为我的 Rails 应用程序部署定期更新,并将版本号作为字符串保存在全局常量中。

我希望能够为特定更新仅部署/运行一次简单的脚本,它将对数据库执行一些操作(我正在使用mongoid,并且我已经稍微修改了架构)

假设我在 0.1.25 版本下并升级到 0.1.26,我只想为 0.1.25 或更低版本的服务器运行此自定义脚本一次(对于 0.1 等下一次更新,该脚本不会再次运行.26 至 0.1.27)

我相信这可以实现为 Capistrano 任务,但是如何检索该常量的先前值?( Application::VERSION_NUMBER)

0 投票
1 回答
493 浏览

ruby-on-rails - mongoid-4 如何在 1 对 1 关联中验证 belongs_to 的唯一性

我在 2 个 mongoid 模型之间有 1 对 1 的关联,并且我不断得到重复,即有多个具有相同 parent_id(即用户)的子记录(卡)。我已尝试验证如下所示的 belongs_to 关联的唯一性,但它不起作用。

第二种型号:

0 投票
1 回答
170 浏览

ruby-on-rails - 日期在具有 mongo id 的 Rails 应用程序中不起作用

我已经创建了一个带有 mongoid 的 rails 应用程序,但我在DATE遇到了一个问题

我创建了一个名为“张贴”的脚手架

当我编辑日期时,它会更新....

我在这里遵循 Railscast #238 Mongoid 的说明

有我的posting.rb 文件

这是我的 _from.html.erb

最后是我的 show.html.erb 文件

0 投票
1 回答
567 浏览

ruby-on-rails-4 - 如何通过 mongoid 中的多个可能值之一进行查询

来自 = [:TPE, :TOKYO, :CHICHAGO]

输入文件

输出文件

0 投票
1 回答
2265 浏览

mysql - Rails 4:一起使用 MySql 和 MongoDB

我正在尝试一起使用 MongoDB(mongoid) 和 MySQL 在 Rails 4 中创建应用程序。但我无法设置它。

我正在按照以下步骤操作:

  1. rails new myapp -d mysql
  2. 然后将这些行添加到 Gemfile:
    gem "mongoid"
    gem "bson_ext"
  3. bundle install
  4. rails g mongoid:config

第 4 步失败。我无法弄清楚问题所在。它显示以下错误。

/home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations.rb:5:in require': /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:79: syntax error, unexpected keyword_do_cond, expecting ':' @documents = attributes ? attributes.collect do |attrs| ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:84: syntax error, unexpected ':', expecting keyword_end end : [] ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:99: syntax error, unexpected keyword_do_cond, expecting keyword_end attributes.values.each do |attrs| ^ /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations/has_many.rb:139: syntax error, unexpected keyword_end, expecting end-of-input (SyntaxError) from /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid/associations.rb:5:in'来自/home/devesh/.rvm/gems/ruby-2.2 .2/gems/mongoid-1.0.6/lib/mongoid.rb:40:in require' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/mongoid-1.0.6/lib/mongoid.rb:40:in'来自 /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/ runtime.rb:76:in require' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:inblock (2 levels) in require' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:在each' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in来自 /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:ineach' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in要求的块中:来自 /home/devesh/ 的要求中。 rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler.rb:134:in require' from /home/devesh/fashion_hub/store/config/application.rb:7:in'来自/home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3 .6/lib/spring/application.rb:82:inrequire' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:82:in预加载'来自 /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:143:in serve' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:131:inblock in run' 来自 /home/devesh/.rvm /gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:in loop' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:inrun' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring -1.3.6/lib/spring/application/boot.rb:18:in<top (required)>' from /home/devesh/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in需要'来自 /home/devesh/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext /kernel_require.rb:54:in `require'

我在关注这个网址

一些细节:

  1. 操作系统 - Ubuntu 14.04
  2. 红宝石 v2.2.2
  3. 导轨 4.2.3
0 投票
0 回答
128 浏览

ruby-on-rails-4 - Cancancan 嵌套资源授权失败并出现 mongoid

我在这里简单解释一下。问题是如何使用 mongoid 授权嵌套资源?假设我有一个Project模型和一个Project::Task模型。Project有很多Project::Task。我想Project::Task在控制器级别授权,不想显示另一个Project人的任务。所以基本上我会在下面处理它:

load_and_authorize_resource :project, class: Project load_and_authorize_resource :task, through: :project_id, class: Project::Task

但这不起作用。它总是抛出 403。这样做的正确方法是什么?

0 投票
1 回答
2937 浏览

ruby-on-rails - 如何在使用 db.collection.insert() 时即时切换 MongoDB 数据库?

我有一个多域 Rails 4 应用程序,其中request.domainhttp 请求决定了我向给定访问者公开哪些功能。

我的应用程序中的每个域都应由其自己的 MongoDB 数据库提供服务。例如domain1.comdb_for_domain_1等提供服务。

我可以阅读关于运行时持久性的MongoDB文档

使我能够即时切换数据库。

但是当我绕过 Mongoid 并使用 mongo Shell 方法db.collection.insert()时,如何保持持久性?不过,我仍然会在我的应用程序中执行此操作。

答案可能在关于集合访问的 MongoDB 文档中,但我不明白。那么如何在此操作之前/期间切换数据库?:

0 投票
0 回答
236 浏览

ruby-on-rails - Mongoid 查询以获取至少一个嵌入文档与条件匹配的所有父文档

questions在 mongodb 中有这些文档,它可以answers嵌入多个文档。我在 Rails 应用程序中使用 mongoid。

我想获取所有这些问题文档,其中asked_to includes 564297f441021327d3000001任何嵌入式答案文档都符合此标准user_id ==564297f441021327d3000001 type == text || status == active

所以在上面的例子中,使用我的条件,它应该返回我上面的三个问题文档,因为每个问题,都有一个匹配这些条件的嵌入文档

我尝试像这样在 mongoid 中编写查询,但它当然不会工作,因为我没有or这样的东西可以使用。:

那么我怎样才能实现我想要的呢?