問題タブ [mongoid3]
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.
heroku - HerokuでMongoIDを使用してDBサイズを確認するにはどうすればよいですか?
HerokuでMongoHQアドオンを使用し、Mongoid3.0アダプターを使用しています。アドオンプランにはサイズ制限があり、DB制限に達すると、Mongoはサイレントに書き込みに失敗します(セーフモードに設定されている場合を除きます。この場合、例外がスローされます)。
アプリ内からどれだけ近いかを照会し、制限に達した場合にアラートを送信しようとしています。db.stats()
コマンドのようなものをMongoidを使用して実行するにはどうすればよいですか?
ruby-on-rails - レール環境で複数回呼び出されるmongoidオブザーバー
Mongoid 3、レール3.2を使用
私はこのようなクラスを持っています
そして、私にはこのようなオブザーバーがいます
私の問題は、after_createコールバックが複数回呼び出されることです。コントローラーまたはコンソールから会社を作成すると、コールバックが2回呼び出されることがあります。オブザーバーが2回インスタンス化されていないことを確認するためにテストしました。また、before_createを使用してnew_recordをチェックしてみましたか?1回目はtrueを返し、2回目はfalseを返すので、なぜ2回目に呼び出すのかわかりません。
これが私のCompaniesコントローラーですが、モデルが更新されたときではなく、モデルが作成されたときにのみ呼び出したいので、after_createコールバックを使用したいと思います。
ruby-on-rails - Mongoid 3 の limit(10) / Moped はコレクション全体で count() を実行します
すぐに実行される単純なクエリを実行するアクションがありますが、何らかの理由で、count()
要求していないコマンドも実行します。
コントローラーで:
そしてログで:
ログからわかるように、カウントを実行するには378 ミリ秒かかりますが、実際に必要な 10 個のドキュメントを取得するにはわずか 4 ミリ秒しかかかりません。カウントをなくすにはどうすればよいですか?
私は will_paginate を使用していますが、この特定のアクション/ビューでは使用していません。
何か案は?
* UPDATE *
Active は単なる標準スコープです:scope :active, where(status: "available")
mongodb - ActiveAdmin の Formtastic との Mongoid embeddeds_many / embedded_in 関係...?
ふぅ - たくさんのプロジェクトがこれにまとめられました。私はいくつかの (大規模な) 検索を行っても役に立ちませんでした。
ActiveAdmin の Mongoid 対応フォークを使用して、Rails 3 アプリの管理インターフェイスを構築しています。
ActiveAdmin (Formtastic を使用してフォームを構築する) は、これまでのところ順調に進んでいるようです。しかし、このスタックを Mongoidembeds_many
とembedded_in
リレーションで使用しようとすると、思わぬ障害に遭遇しました。私は善良な市民であり、Mongo で適切なデータ モデリング手法を使用しようとしていますが、Formtastic は協力したくないようです。
難解かもしれませんが、私が得た特定のエラーを共有します。
has_many
良い解決策を見つけられない場合は、MongoDB の主な利点を放棄することになるとわかっていても、思い切ってandだけを使用しbelongs_to
ます (アプリは不足するほど大きくはなりません)。結合/複数のクエリの数が問題になる可能性がありますが、最初から正しい方法で行うと考えました!)。
それはラインで窒息し、f.input :location
投げています:
をに変更:as => :select
し:as => :check_boxes
、実際に正しい場所を表示するようにしました(ただし、選択やラジオではなく、チェックボックスとして)。しかし、フォームを送信すると、次のメッセージが表示されます。
生の送信を見ると、選択内容を親ドキュメント (場所) の ID ではなく「event_id」として送信しようとしています。
とにかく、私の直感は、ここで四角いペグを丸い穴に合わせようとしているということですが、他の誰かが何か考えを持っているなら、彼らは大歓迎です.
mongodb - Mongoid を Rails 3 と一緒に active_record で動作させる
mongoid 3 のインストール ガイドでは、アクティブ レコードを無効にする方法についても説明しています。
問題は、MySQL で active_record を広く使用している既存のプロジェクトに Mongoid を統合しようとしていることです。それを変更するつもりはありません。
また、active_record の上に squeel を使用しています。
とにかく、宝石を追加してアクティブなレコードでアクションを実行しようとすると、以下のエラーが発生します。
Mongoid はもう WITH active_record を実行するためのものではありませんか? 過去に大きな成功を収めて、サイズのactive_recordに沿ってMongoid 2を使用しました。どうしたの?
Rails 3.2.9 を使用しています。
任意のヘルプのための thx、
これは私が得るエラーです:
NoMethodError: /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:59:in expand_hash_conditions_for_aggregatesからの expand_hash_conditions_for_aggregates の未定義のメソッドto_sym' for #<Origin::Key:0x0000000851d788>
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:60:in
ブロックeach'
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/sanitization.rb:59:in
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:248:in block in build_where'
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:243:in
map' from /home/ miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:243:in build_where'
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/relation/query_methods.rb:136:in
where' from /home/miki/.rvm /gems/ruby-1.9.3-p327@simplee/gems/squeel-1.0.13/lib/squeel/adapters/active_record/relation_extensions.rb:218:in where'
from /home/miki/.rvm/gems/ruby-1.9.3-p327@simplee/gems/activerecord-3.2.9/lib/active_record/querying.rb:9:in
where'
mongodb - Mongo で時間の長さを保存する型
MongoDB で時間の長さを保存するには、どの型を使用すればよいですか?
サウンドデータの時間の長さを保存する必要があります。そのため、タイムスタンプ タイプが正しくないようです。
ruby-on-rails-3 - Rails と Mongoid と重複した検索クエリ
私のレールアプリケーションでは、この非常に奇妙な動作があります。検索クエリはすべて二重に実行されます。これは、AP 側と DB 側の両方でクエリをログに記録することで確認しました。ただし、開発モードでのみテストしました。
メソッドにログを追加して、メソッドが複数回呼び出されているかどうかを確認しましたが、そうではありませんでした。
すべての保存は 1 回だけ実行されるため、問題はありません。すべてのデータを 2 回クエリするため、DB 内のデータが増えるほど、ページの読み込みが遅くなるという問題のみが発生します。
コードのどの部分を貼り付けるべきかさえわかりません。これがどこから来ているのかわからないからです。
私は使用していますmongoid (3.0.13), rails (3.1.3)
ソース全体のgithubへのリンクは次のとおりですhttps://github.com/deiga/new-Roydon/tree/develop
mongodb - モンゴコンバインおよび/または単一のクエリ
私はmongoを照会するための最良の方法を見つけようとしています。Mongoidと最新のmongoバージョンを使用しています
私がやりたいのはこのようなクエリです
user_id=>[IDの配列]およびuser_type=>"some_type" OR user_id=>[IDの配列]およびuser_type=>"some_type"
どうすればMongo/Mongoidでそれを行うことができますか?
ruby-on-rails - Moingoidを使用したMongoDBの定数
Mongoidを介してMongodbにプロジェクト全体の定数を保存するための良い一般的な方法はありますか?それらをデータベースに保持する価値さえありますか?
sinatra - MongoIDを使用したANDおよびOR演算のネスト
私は、MongoIDでANDおよびOR操作をネストする方法を理解しようとしています(MongoMapperで使用していたものから取得):
和集合と共通部分のしくみについてはあまり詳しくありませんが、キッカーは、内の各子AND
がオプションであるか、保証されていないことです。つまり、内の各クエリAND
はプログラムであり、チェックする項目が2つ、1つの項目などが存在する可能性があります。
私はこのようなことをすることを考えました:
ただし、これに関する唯一の問題は、ユーザー入力に基づいてクエリを作成するためのベストプラクティスがわからないことです。MongoIDモデルに接続しているユーザーのAPIポイントとして機能するsinatraベースのアプリケーションがあり、ユーザーがAPIを介してこのような(おそらくこれほど複雑ではない)クエリを構築できるようにしたいと考えています。
さまざまな理由でMongoMapperからMongoIDに移行していますが、MongoMapperでは、ネストされた演算子and
やor
演算子などのすべてがメソッド内でサポートされているため、これらのクエリは少し簡単になりましたwhere
。