問題タブ [mongoid]
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.
mongodb - MongoDB では、インデックスが 3 つのフィールドにある場合、2 つのフィールドに対してクエリを実行するときにそのインデックスを使用できますか? (第 3 フィールドのワイルドカード)
インデックスがある場合
クエリを実行すると、
が省略された場合our_id
、またはdate
省略された場合でも、explain() の出力に次のような内容でインデックスを使用できます。
と の両方our_id
をdate
省略した場合でも、インデックスは引き続き使用できます。
ただし、page_type
を省略した場合は、インデックスを使用できません ( をexplain()
参照)。では、MongoDB では、インデックスの一部が数値や日付などのシーケンスの一部である場合、クエリ時に省略できるというのは本当ですか? これはリレーショナル DB にも当てはまりますか?そのインデックスがこれらの 3 つのフィールドに基づいている場合、厳密には 3 つのフィールドに基づいている可能性があると思います。
mongodb - MongoDBのMap/Reduceソートは機能しますか?
以下を使用する場合
でソートされませんpageviews
。または、ハッシュの配列の場合:
それも機能しません。配列でなければならない理由は、並べ替える最初のフィールドを指定するためなどだと思います。また、上記の最初のコードのように配列の配列ではなく、フラット配列だけを試しましたが、どちらも機能しませんでした。 。
動作していませんか?これは仕様です:http://api.mongodb.org/ruby/current/Mongo/Collection.html#map_reduce-instance_method
ruby-on-rails - ActiveRecord (または Mongoid) でデータベース接続と table_name のリクエストごとにスレッドセーフな設定を行うことはできますか?
<<「ユーザーは多くのデータベースを持っていますか」という質問とも呼ばれます。>>
環境
私のアプリは次のようにモデル化されています:
あなたはアイデアを得る!
したがって、データベース内でデータベースをモデル化する代わりに、次のものが必要です。
- ユーザーを保持する sqlite3 データベースと
- ユーザーごとに多数の sqlite データベース
各ユーザーはデータベース内のテーブルを LCRUD します (phpmyadmin と同様)。
問題
データベース接続と table_name のスレッドセーフなリクエストごとの構成が必要です
EDIT
ご覧のとおり、接続はグローバルでスレッド間で共有されますが、私のアプリの仕様によると、各ユーザーには独自の接続があります。ここで、2 人の異なるユーザーが同時に 2 つのリクエストを行ったとします。
オプション?
- ActiveRecord をあきらめて、必要最小限の DB ドライバーを使用する
- スレッドセーフをあきらめる
mongodb - Mongoid を使用したバッチ挿入/更新?
私はグーグルで検索しましたが、答えが見つかりませんでした。質問は:
こんにちは、Mongoid を使用して MongoDB に一括挿入するにはどうすればよいですか?
mongodb - MongoDBを使用して、Map / Reduce結果を再利用する簡単な方法はありますか?
たとえば、Analyticsを実行する場合、10秒かかるmap/reduceの実行が発生する可能性があります。実行後、他のWebページがその結果を利用できる場合は、ページごとに10秒節約できます。
map/reduceの結果を何らかの方法でキャッシュしておくとよいでしょう。
成功したmap/reduceの実行をmap_reduce_result_[timestamp]
dbのように記録し、このタイムスタンプをdb.run_log
MongoDBに保持することができます。このタイムスタンプは、たとえばUNIXエポック時間です。したがって、他のページが結果にアクセスする必要がある場合、最大タイムスタンプを取得して、MongoDBに保存されているその結果を検索することができます。しかし、そうすることはハックのようなものであり、それを行うためのより良い方法があるかどうか疑問に思います。
ruby-on-rails - MongoidとCanCanを統合する
誰かがMongoidのCanCanActiverRecordAddtionsを書き直そうとしたことがありますhttp://github.com/ryanb/cancan/blob/master/lib/cancan/active_record_additions.rb
よろしく、アレクセイ・ザハロフ
mongodb - MongoDB の Map/Reduce の結果が永続的なコレクションとして保存された後、内部でどのように並べ替え、Mongoid を使用してそれを取得するのですか?
Map/Reduce の結果を永続的に保存できるが、並べ替えはできないというのは本当ですか? 例えば、
上記は永続的に保存されますが、ソートされません。
その場で並べ替えるには、
しかし、テーブルを内部的にソートできますか? ソートキーにインデックスを作成すれば、内部でソートするのとほぼ同じくらいうまくいくのではないでしょうか?
または、どのように並べ替えて、新しいコレクションとして保存できますanalyticsSortedCachedResult
か?
後で、Mongoid を使用してコレクションを取得するには、
? Mongoid.master.collection('foo')
しかし、コレクションが存在しなくてもコレクションが返されるのではないかと心配しています。しかし、MongoDB にも保存されていないようです。
collections - Mongoidを使用してMongoDBにコレクションが存在するかどうかを確認する方法は?
Mongoid.master.collection()
コレクションが存在しなくてもコレクションを返すので、使用できます
空のコレクションかどうかをテストします。別の方法は、ループスルーすることです
しかし、それが存在するかどうかを検出する簡単な方法はありますか?
mongodb - db.things.find( "j!= 3 && k> 10")とdb.things.find({j:{$ ne:3}、k:{$ gt:10}})を使用するMongoDB
私はMongoDBとRubyドライバーとMongoid、そして行を使用しています
とても奇妙で覚えにくいようです。パーサーを使用しないのはなぜですか。
自動的に目的の形式に変換できるのはどれですか?(または内部で使用する形式)。
ruby-on-rails - 同じドキュメント内の 2 つの時間フィールドを比較する Mongoid 名前付きスコープ
Mongoid で、同じドキュメント内の 2 つの Time フィールドを比較する名前付きスコープを作成する必要があります。そのような
scope :foo, :where => {:updated_at.gt => :checked_at}
:checked_at
これは、実際のフィールドではなくシンボルとして扱われるため、明らかに機能しません。これを行う方法について何か提案はありますか?
更新 1
これは、このスコープを宣言し、多くの余分なコードを取り除いた私のモデルです。
これにより、次のエラーが表示されます。
'<class:User>': undefined method 'checked_at' for User:Class (NoMethodError)