問題タブ [mongodb-ruby]
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 - Mongoid: _id が別のコレクションに存在するドキュメントを取得する
別のコレクション内のこれらのドキュメントへの参照の存在に基づいて、コレクションからドキュメントを取得しようとしています。
2 つのコレクションがあり、モデルが次のようにUsers
なっCourses
ているとします。
- ユーザー:
{_id, name}
- コース:
{_id, name, user_id}
注: これは単なる架空の例であり、実際の使用例ではありません。の名前フィールドで重複が問題ないと仮定しましょうCourse
。痩せましょうCourse as CourseRegistrations
。
ここでは、 の を保持して への参照を維持していUser
ます。また、文字列として保存されていることに注意してください。Course
user_id
_Id
User
ここで、特定のコース セットに登録されているすべてのユーザーを取得したいと考えています。
2つのクエリで実行できることを知っています。最初にクエリを実行し、一連のコースusers_id
のコレクションからフィールドを取得します。Course
次に、前のクエリで取得したユーザー IDUser
を使用してコレクションをクエリします。$in
しかし、ドキュメントの数が数万以上になると、これはうまくいかないかもしれません。
たった1回のクエリでこれを行うより良い方法はありますか?
mongodb - 100 行目をフェッチするときに遅延が発生する
コレクションからすべての行を取得していますが、100 行目で遅延が発生しています。find メソッドがカーソルを返し、すべてのデータが前もって特定の時点でさらにデータをフェッチする必要があるわけではないことを理解しています。しかし、100行目が唯一の遅延です。
そして、最大 100 000 画像まで目に見える遅延はありません。
使用した ruby スクリプト:
mongoimport --db pics --collection images file_name
質問は次のとおりです。
- いくつかのデータは最初のカーソルと一緒に来ますか?
- なぜ100行目の唯一の遅延なのですか? 多分私は何かを逃したかもしれませんが、その時点でIOの読み取りさえ見られません
ありがとうございました
ruby - Mongoid 3.1.4 未定義のメソッド「has_key?」「Document.create」を呼び出すとき
Mongoid (v 3.1.4) を使用して (非常に単純な) エンティティを MongoDB (v 2.4.4) に永続化しようとすると問題が発生します。OS X で MRI と Ruby 2.0.0-p195 を使用しています。
ここに私のクラス(Person.rb)があります:
その最後の文は私に挨拶します
[...]mongoid/attributes.rb:320:in 'method_missing': 未定義のメソッド `has_key?' nil:NilClass (NoMethodError) の場合
ここに私の「mongoid.yml」があります:
DB が作成されているため ('rbtest')、DB インスタンスへの接続は問題ないように見えますが、コレクションとドキュメントは失敗します。私はすでに 'create!' で試しました。と「安全に保存してください!」無駄に。
has_key? を実装してみました。ドキュメントが見つからなかったので、ここで少し途方に暮れています。
いつものように、どんな助けも大歓迎です。
よろしく、
更新 -- 解決策:
@Frederik Cheungの答えは的を射ていました。これが作業コードです(@ mu-is-too-shortの提案で更新されました)
ruby - Mongomapper がエラー メッセージを複数回スローする
私は単純なモデルを持っています - Ruby/MongoMapper アプリケーションで買い物をします。
エラー メッセージが 1 つしか表示されない場合と、次のようなエラー メッセージが 3 つ表示される場合がある理由がわかりません。
「検証に失敗しました: ユーザーは既に取得されています, ユーザーは既に取得されています, ユーザーは既に取得されています」
はい、意図的に同じ user_id を複数回追加しています。
これが私のコードです:
結果:
アップデート:
を削除するようです
「問題」を修正します。しかし、なぜ...
ruby - 複数の $nin を使用した Mongodb クエリ
私はこの例を取りました:
mongodb.org Web サイトを形成します。
$nin を複数回使用しようとすると、常に find_and_modify が失敗します。私が達成したいこと:
しかし、 $nin を複数回使用することは許可されていないようです。$push をそのように使用できないことはわかっているので、複数のフィールドで一度だけ $push を使用します。しかし、それを $nin に使用するにはどうすればよいでしょうか?
ruby - Ruby での Mongo Group 関数呼び出し
私はこのようなmongodbコレクションを持っています
{"assigneeId" => 1000, "status" => 3, "starttime" => "2014 Feb 25", "numofdays => 6} {"assigneeId" => 1000, "status" => 2, "starttime" => "2014 年 1 月 10 日", "numofdays => 6} {"assigneeId" => 1000, "status" => 3, "starttime" => "2014 年 1 月 1 日", "numofdays => 20}
上記のコレクションをステータスが 3 の assigneeId でグループ化し、このように numofdays の値を追加する MongoDB クエリを作成しました。
db.events.group ( { key: {assigneeId:1}, cond: {status: {$gte: 3}}, reduce: function (curr, result) {result.total++; result.numofdays += curr.numofdays; }、初期: {total:0, numofdays:0} })
これにより、Mongodb cli から期待どおりの出力が得られます。
同じクエリを実行するための ruby コードを書いたところ、うまく動作しませんでした。同様の問題に対して多くの異なるヒットが発生していますが、どのフォーマットも機能していないようです。グループ化関数の ruby の構文エラーを回避できませんでした。私はモンゴイドを使用していないことに注意してください。集約フレームワークでこの作業を行うことができれば、それも問題ありません。
これは私が書いた Ruby クエリと同じエラーです。
私が得ているエラー
analyze.rb:43: 構文エラー、予期しない ','、予期しない ')' out = @events_h.group (["assigneeId"], { }, { }, "function() { }") ^ analyze.rb: 43: 構文エラー、予期しない ')'、keyword_end が必要ですanalyze.rb:83: 構文エラー、予期しない入力の終わり、keyword_end が必要です
どんな助けでも大歓迎です。
ありがとう
ruby - ネストされたハッシュを更新する MongoDB - Ruby
MongoDB ドキュメントのハッシュを単純な値で更新しようとしていますが、値を配列に格納しています。mongoにはrubyドライバーを使用しています
私の英語が下手なので、コードはよりよく説明します。
私が持っているもの:
私が欲しいもの:
私が得るもの:
どうやってそこに着いたのですか:
MongoDB でネストされたドキュメントの更新を既に試しましたが、何が間違っているのかわかりません
ruby - ruby mongodbドライバーがアレイにプッシュ
Person
ドキュメントがあり、このドキュメントに追加したいとしましょうTags
。
だから私はドキュメントを次のようにしたい
人が興味を選択するたびに、リストに追加したいと思いますtags
。
これが私の試みです:
これを実行すると、例外が発生します。
私は何を間違っていますか?