問題タブ [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はおそらく 1 万通りになります。ab

$in演算子を使用してこの種のクエリを実行する方法はありますか?

そうでない場合、それを行うための最良の方法は何ですか?

0 投票する
1 に答える
75 参照

ruby-on-rails-4 - Rails デプロイメント アプリケーションのバージョン固有の更新スクリプト

Capistrano を使用して Rails アプリケーションの定期的な更新を展開しており、バージョン番号をグローバル定数の文字列として保持しています。

データベースでいくつかの操作を実行する、特定の更新に対して1回だけ簡単なスクリプトを展開/実行できるようにしたいと思います(私はmongoidを使用しており、スキーマを少し変更しました)

バージョン 0.1.25 未満で、0.1.26 にアップグレードしているとします。0.1.25 以下のサーバーに対してこのカスタム スクリプトを1 回だけ実行したいと思います (0.1 のような次の更新では、スクリプトは再度実行されません)。 .26 か​​ら 0.1.27)

これは Capistrano タスクとして実装できると思いますが、その定数の以前の値を取得するにはどうすればよいですか? ( Application::VERSION_NUMBER)

0 投票する
1 に答える
493 参照

ruby-on-rails - mongoid-4 1 対 1 の関連付けで、belongs_to の一意性を検証する方法

2 つのモンゴイド モデル間に 1 対 1 の関連付けがあり、重複が発生し続けます。つまり、同じ parent_id (ユーザー) を持つ複数の子レコード (カード) があります。以下に示す属している関連付けの一意性を検証しようとしましたが、機能しません。

2 番目のモデル:

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' from /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' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/ /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:72 からの runtime.rb:76:require 内のrequire' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:inブロック (2 レベル): 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:in require' のブロック内/ each' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:inhome/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:inpreload' from /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' from /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:inrequire' from /home/devesh/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext /kernel_require.rb:54:in `require'

私はこのURLをたどっていました。

いくつかの詳細:

  1. OS-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データベースをその場で切り替える方法は?

request.domainhttp リクエストの が特定の訪問者に公開する機能を決定するマルチドメイン Rails 4 アプリがあります。

アプリ内の各ドメインは、独自の MongoDB データベースによって提供される必要があります。たとえば、 domain1.comdb_for_domain_1などによって提供されます。

ランタイム永続性に関するMongoDBのドキュメントを読むことができます

その場でデータベースを切り替えることができます。

しかし、Mongoid をバイパスして mongo Shell メソッドdb.collection.insert()を使用する場合、どうすれば永続性を維持できますか? ただし、アプリケーション内から実行します。

コレクション アクセスに関する MongoDB ドキュメントに答えがあるかもしれませんが、私にはわかりません。では、この操作の前/最中にデータベースを切り替えるにはどうすればよいですか?:

0 投票する
0 に答える
236 参照

ruby-on-rails - 埋め込まれたドキュメントの少なくとも 1 つが条件に一致するすべての親ドキュメントを取得する Mongoid クエリ

これらのquestionsドキュメントは mongodb にあり、複数のanswersドキュメントを埋め込むことができます。私はレールアプリでモンゴイドを使用しています。

埋め込まれた回答ドキュメントのいずれかがこの条件に一致するすべての質問ドキュメントを取得したいasked_to includes 564297f441021327d3000001user_id ==564297f441021327d3000001 type == text || status == active

上記の例では、私の条件を使用すると、すべての質問にこれらの条件に一致する埋め込みドキュメントが 1 つあるため、上記の 3 つの質問ドキュメントがすべて返されます。

私はこのようにmongoidでクエリを書いてみましたが、もちろん、or私が使用できるようなものがないのでうまくいきません.

では、どうすれば私が探しているものを達成できますか?