問題タブ [rmongodb]
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.
r - RからMongoDBをクエリする方法は?
RからMongoDBクエリを取得したい。
mongo
シェルを使用すると、次のようにクエリを実行します。
ただし、R-Mongoでは、このクエリを説明する方法が見つかりませんでした。
ありがとう
r - パッケージ'rmongodb'を使用したクエリの結果セットの処理
rmongodbパッケージを使用し、最終オブジェクトを?にする場合、MongoDBクエリの結果セット(長さ> 1 )をどのように処理しますか?list
list
結果セットをステップ実行しながらオブジェクトを追加するだけで発生する、Rの典型的な「値渡し」コピーの非効率性を回避しようとしています。しかし、それを行うには、クエリが返した「レコード」の総数を知る必要があると思いますね。そうすれば、空のリストにまたがって、結果セットをステップスルーするときにそのリストを埋めることができます。さらに良いことに、lapply()
などを使用することもできます。
これが小さな例です
コンテンツの例
この例は、MongoDB Webサイトから取得され、 rmongodbを介して実装されています。
クエリ
クエリ結果の処理
それは私が思いつくことができる最高のものです:
しかし、私が探しているのは、次のようなas.list(cursor)
ものです。
これは可能ですか?残念ながら、私はパッケージで使用されていると思うC /C++ポインタにあまり詳しくありません。
r - rmongodbを使用してRで高度なMongoDBクエリを実行する
MySQLが私を狂わせているので、私は自分の最初の「NoSQL」DBMSに精通しようとしていますが、それはたまたまMongoDBでした。rmongodbを介して接続しています。
rmongodbをいじくり回すほど、高度なクエリの実行に関してより多くの質問/問題が発生します。
正しく指定できないと思われるさまざまなタイプのクエリについて詳しく説明する前に、まずいくつかのサンプルデータを示します。
サンプルデータ
この例はMongoDBWebサイトから抜粋したもので、少し簡略化されています。
JSON / BSONオブジェクトの挿入に関連する2つの質問:
- ドキュメント'test.posts'、フィールド:この場合
voters
に使用するのは正しいですか?c()
- ドキュメント'test.posts'、フィールド
comments
:これを指定する正しい方法は何c()
ですかlist()
?
トップレベルのクエリ:彼らは御馳走を働きます
トップレベルのクエリは問題なく機能します。
質問1:基本的なサブレベルのクエリ
JSON / BSONスタイルのMongoDBオブジェクトの任意の深いサブレベルに到達する必要がある単純な「サブレベルクエリ」(トップレベルクエリではなく)をどのように実行できますか?これらのサブレベルのクエリはMongoDBのドット表記を利用しており、それを有効なrmongodbクエリにマップする方法がわからないようです。
プレーンなMongoDB構文では、
動作します。しかし、 rmongodb関数でそれを行う方法がわかりません
これが私がこれまでに試したことです
質問2:$
演算子を使用したクエリ
これらの作品
クエリ1
クエリ2
ただし、アトミックセットの戻り値は次のようになることに注意してください。NULL
サブレベルのクエリで同じことを試してみると、また迷子になります
r - MongoDBでのクエリ
Rでさらに処理するためにMongoDBデータベースから情報をフェッチするために使用しようとしていrmongodb
ます。しかし、実際に開始するにはいくつかの問題があります。これは機能します:
さて、名が「ジョン」、「ボブ」、「キャサリン」のいずれかである人を見つけたい場合はどうすればよいですか?試しましたが、うまくいきquery=list(last.name="Smith", first.name=c(John, Bob, Catherine))
ませんでした。との置き換えも機能=
し%
ませんでした。
もう1つの問題は、データベースコンテンツがネストされていることです。つまり、サブツリー、サブサブツリーなどがあります。たとえば、エントリの場合は、のfirst.name="John", last.name="Smith"
ようなサブエントリがaddress, age, occupation
あり、職業の場合は、サブツリーとしてカテゴリがあります(たとえば、2005年から2012年までの年など)。毎年、「失業者」、「店員」、「起業家」などのエントリがあります。では、40歳で、2010年に失業した「ジョン」という名の人をすべて見つけたい場合はどうすればよいでしょうか。クエリはどのようになりますか?
Stennieへの返信として編集:これが私のデータベースの構造と私が行おうとしているクエリの例です。大学の卒業生がグループに細分化されていると想像してみてください(たとえば、「非常に優秀な学生」、「優秀な学生」など)。各グループには、このグループに割り当てられている人々のリストとその詳細が含まれています。
ここで、「最高の学生」と「良い学生」という名前のグループに興味があり、これらの各グループの各メンバーの「名前」と「職業」をRオブジェクトとして取得したいとします。いくつかのプロット、統計などを行います。また、このリクエストを改良して、40歳未満のメンバーのみを取得したいと思うかもしれません。Stennieの返信を読んだ後、次のように試しました。
これを実行した後、エラーメッセージは表示されませんが、空のデータフレームが表示されます。このコードの何が問題になっていますか?
r - rmongodb: クエリで $or を使用
R と rmongodb 内で $or を使用してクエリを作成するのに苦労しています。私がエミュレートしたいのは、cmdline mongoからのこれです:
person.cell が null でない、または person.home が null でないレコードを取得したいと思います。それぞれを個別にクエリできますが、rmongodb で $or を使用してバッファーを作成するとデータを取得できません。rmongodb を使用する R コードは次のようになります。
これは、レコードもエラーも返さず、空のセットのみを返します。前述したように、person.cell または person.home のいずれかで検索を実行して結果を取得できますが、(rmongodb で) $or を実行しようとすると結果が得られないため、person.cell または person.home のいずれかでレコードをプルします。 .
私もこれを試しました:
しかし、同じ空のセットの結果が得られます (「b」を表示すると同じように見えます)。私はこれにこだわっています。
r - rmongodb を使用して MongoDB レプリカ セットに接続する
を使用して MongoDB レプリカ セットに接続できた人はいrmongodb
ますか? シェルmongo.create
経由で接続するときに同じホスト/ユーザー名/パスワードが正常に機能する場合でも、どのように構成しても認証エラーが発生します。mongo
私のコードは次と同等です:
アップデート:
レプリカ セット内のすべてのノードのログを確認すると、上記のコードを実行しても認証が試みられていません。したがって、これはrmongodb
バグである可能性があります。
arrays - rmongodbを使用して、mongoDBの配列からデータフレームに値を抽出します
例に示されているエントリを含むデータベースにクエリを実行しています。すべてのエントリには、次の値が含まれています。
_id
overallitem
:との一意のIDplaced_items
name
:ての名前overallitem
loc
:overallitem
との場所placed_items
time_id
:overallitem
保存された時間placed_items
:配列を含むplaced_items
(ゼロplaced_items : [],
から無制限の量までの範囲で指定できます)。category_id
:のカテゴリplaced_items
full_id
:の完全なIDplaced_items
を抽出したいname
、full_id
および制約が与えられたレベルcategory_id
ごとにplaced_items
time_id
loc
データ例:
この例で期待される結果は次のとおりです。
したがって、placed_items
が空の場合はエントリをデータフレームに配置し、エントリが含まれている場合はplaced_items
エントリをデータフレームn
に配置しますn
RBloggerの例を作成して、目的のデータフレームを作成しようとしました。
overallitem
レベル(つまり_id
または)で値を抽出したいがname
、レベルで情報を収集できない場合は、条件が機能し、コードが機能しplaced_items
ます。さらに、点線で抽出する必要がfull_id
あり、category_id
機能していないようです。誰か助けてもらえますか?
r - rmongodbでグループ化
次のようなMongoDBコレクションでグループクエリを作成しようとしています。
私はrmongodbを使用しています。rmongodbパッケージのドキュメントを確認してmongo.command
から、countコマンドを実行するために使用します。
また明確:
mongo.command
誰かがグループクエリを実行するために使用することに成功しましたか?
r - R で mapreduce を使用する
R を使用して mapreduce を実行しようとしています。mapReduce という R パッケージがありますが、その機能は複雑な mapreduce アプリケーション向けではありませんでした。私は自分のデータベースに mongodb を使用しており、R の rmongodb パッケージを使用してそれにアクセスしています。
r - rmongodb を使用して大規模な結果セットの処理を高速化する
rmongodb を使用して、特定のコレクション内のすべてのドキュメントを取得しています。それは機能しますが、私は何百万もの小さなドキュメント、潜在的には 1 億以上のドキュメントを扱っています。私はウェブサイトで著者が提案した方法を使用しています: cnub.org/rmongodb.ashx
これは、数百または数千の結果に対しては問題なく機能しますが、while ループは非常に低速です。これをスピードアップする方法はありますか?おそらくマルチプロセッシングの機会ですか?任意の提案をいただければ幸いです。1 時間あたり平均 100 万で、このレートでは、データ フレームを構築するだけで 1 週間かかります。
編集: while ループ内のベクトルが多いほど、処理が遅くなることに気付きました。私は今、ベクトルごとに別々にループしようとしています。まだハックのように思えますが、もっと良い方法があるはずです。
編集 2: data.table でうまくいきました。まだ実行中ですが、12M (これは私の現在のテスト セットです) を 4 時間で終了するようです。これは進歩ですが、理想からはほど遠いものです
}