問題タブ [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.
mongoid - MongoDB は、複数のフィールドに基づいてドキュメントを選択します
コレクションに次のドキュメントがあるとします。
のすべてのドキュメントを取得したい(a = 1 and b = 7) or (a = 2 and b = 8)
。クエリは常に と のフィールドのみになりますがa
、可能なとのペア (組み合わせ)b
はおそらく 1 万通りになります。a
b
$in
演算子を使用してこの種のクエリを実行する方法はありますか?
そうでない場合、それを行うための最良の方法は何ですか?
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
)
ruby-on-rails - mongoid-4 1 対 1 の関連付けで、belongs_to の一意性を検証する方法
2 つのモンゴイド モデル間に 1 対 1 の関連付けがあり、重複が発生し続けます。つまり、同じ parent_id (ユーザー) を持つ複数の子レコード (カード) があります。以下に示す属している関連付けの一意性を検証しようとしましたが、機能しません。
2 番目のモデル:
mysql - Rails 4: MySql と MongoDB を一緒に使用する
MongoDB(mongoid)とMySQLを併用してRails 4でアプリケーションを作ろうとしています。しかし、私はそれを設定することができません。
私は以下の手順に従っています:
rails new myapp -d mysql
- 次に、これらの行を Gemfile に追加しました。
gem "mongoid"
gem "bson_ext"
bundle install
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:inrequire' 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:in
home/devesh/ から。 rvm/gems/ruby-2.2.2/gems/bundler-1.10.6/lib/bundler.rb:134:inrequire' 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
preload' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:143:inserve' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:131:in
block in run' from /home/devesh/.rvm /gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:inloop' from /home/devesh/.rvm/gems/ruby-2.2.2/gems/spring-1.3.6/lib/spring/application.rb:125:in
run' 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
require' 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をたどっていました。
いくつかの詳細:
- OS-ubuntu 14.04
- ルビー v2.2.2
- レール4.2.3
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 がスローされます。これを行う適切な方法は何ですか?
ruby-on-rails - db.collection.insert()の使用中にMongoDBデータベースをその場で切り替える方法は?
request.domain
http リクエストの が特定の訪問者に公開する機能を決定するマルチドメイン Rails 4 アプリがあります。
アプリ内の各ドメインは、独自の MongoDB データベースによって提供される必要があります。たとえば、 domain1.comはdb_for_domain_1などによって提供されます。
ランタイム永続性に関するMongoDBのドキュメントを読むことができます
その場でデータベースを切り替えることができます。
しかし、Mongoid をバイパスして mongo Shell メソッドdb.collection.insert()を使用する場合、どうすれば永続性を維持できますか? ただし、アプリケーション内から実行します。
コレクション アクセスに関する MongoDB ドキュメントに答えがあるかもしれませんが、私にはわかりません。では、この操作の前/最中にデータベースを切り替えるにはどうすればよいですか?:
ruby-on-rails - 埋め込まれたドキュメントの少なくとも 1 つが条件に一致するすべての親ドキュメントを取得する Mongoid クエリ
これらのquestions
ドキュメントは mongodb にあり、複数のanswers
ドキュメントを埋め込むことができます。私はレールアプリでモンゴイドを使用しています。
埋め込まれた回答ドキュメントのいずれかがこの条件に一致するすべての質問ドキュメントを取得したいasked_to includes 564297f441021327d3000001
user_id ==564297f441021327d3000001
type == text || status == active
上記の例では、私の条件を使用すると、すべての質問にこれらの条件に一致する埋め込みドキュメントが 1 つあるため、上記の 3 つの質問ドキュメントがすべて返されます。
私はこのようにmongoidでクエリを書いてみましたが、もちろん、or
私が使用できるようなものがないのでうまくいきません.
では、どうすれば私が探しているものを達成できますか?