タグ付けされた質問 「mongodb」

MongoDBは、スケーラブルで高性能なオープンソースのドキュメント指向のNoSQLデータベースです。多数の言語とアプリケーション開発プラットフォームをサポートしています。サーバー管理に関する質問は、https://dba.stackexchange.comで行うことができます。


16
パンダを使用した「大容量データ」ワークフロー
私はパンダを学びながら何ヶ月もの間この質問への答えを困惑させようとしました。私は毎日の仕事にSASを使用しており、コア外のサポートに最適です。しかし、SASは他の多くの理由からソフトウェアの一部としては恐ろしいものです。 ある日、私はSASの使用をpythonとpandasに置き換えたいと思っていますが、現在、大規模なデータセットのコア外のワークフローが不足しています。私は、分散ネットワークを必要とする「ビッグデータ」ではなく、メモリに収まりきらないがハードドライブに収まるには小さすぎるファイルについて話しているのではありません。 私の最初の考えは、を使用HDFStoreしてディスク上に大きなデータセットを保持し、分析のために必要な部分のみをデータフレームにプルすることです。他の人たちは、MongoDBをより使いやすい代替として言及しました。私の質問はこれです: 以下を達成するためのいくつかのベストプラクティスワークフローは何ですか。 フラットファイルを永続的なディスク上のデータベース構造にロードする データベースをクエリしてデータを取得し、pandasデータ構造にフィードする パンダのピースを操作した後のデータベースの更新 実世界の例は、特に「大きなデータ」でパンダを使用するすべての人から高く評価されます。 編集-これが機能する方法の例: 大きなフラットファイルを繰り返しインポートし、永続的なディスク上のデータベース構造に保存します。これらのファイルは通常、大きすぎてメモリに収まりません。 Pandasを使用するために、メモリに収まるこのデータのサブセット(通常は一度に数列のみ)を読みたいと思います。 選択した列に対してさまざまな操作を実行して、新しい列を作成します。 次に、これらの新しい列をデータベース構造に追加する必要があります。 これらの手順を実行するためのベストプラクティスの方法を見つけようとしています。パンダとpytablesに関するリンクを読むと、新しい列を追加するのが問題になるようです。 編集-ジェフの質問への具体的な回答: 私は消費者信用リスクモデルを構築しています。データの種類には、電話、SSN、および住所の特性が含まれます。プロパティ値; 犯罪歴、破産などの軽蔑的な情報...私が毎日使用するデータセットには、混合データタイプの平均で1,000〜2,000のフィールドがあります。数値データと文字データの両方の連続変数、名義変数、順序変数です。行を追加することはめったにありませんが、新しい列を作成する多くの操作を実行します。 一般的な操作では、条件付きロジックを使用して複数の列を組み合わせて、新しい複合列を作成します。たとえば、if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'。これらの操作の結果は、データセット内のすべてのレコードの新しい列です。 最後に、これらの新しい列をディスク上のデータ構造に追加したいと思います。ステップ2を繰り返して、モデルに対する興味深い直感的な関係を見つけようとするクロス集計と記述統計を使用してデータを探索します。 通常のプロジェクトファイルは通常約1GBです。ファイルは、行が消費者データのレコードで構成されるような方法で編成されます。各行には、すべてのレコードで同じ数の列があります。これは常に当てはまります。 新しい列を作成するときに行ごとにサブセットを作成することは非常にまれです。ただし、レポートを作成したり、説明的な統計を生成したりするときに、行をサブセット化することはよくあることです。たとえば、特定の業種の単純なフリークエンシーを作成したい場合があります(小売クレジットカードなど)。これを行うには、レポートする列に加えて、基幹業務=小売のレコードのみを選択します。ただし、新しい列を作成するときは、データのすべての行と、操作に必要な列のみを取得します。 モデリングプロセスでは、すべての列を分析し、結果変数との興味深い関係を探し、それらの関係を記述する新しい複合列を作成する必要があります。私が探索する列は通常、小さなセットで行われます。たとえば、プロパティ値を扱う20列のセットに焦点を当て、それらがローンのデフォルトにどのように関連するかを観察します。それらが探索されて新しい列が作成されたら、次に大学教育などの別の列グループに進み、プロセスを繰り返します。私がやっていることは、私のデータといくつかの結果との関係を説明する候補変数を作成することです。このプロセスの最後に、これらの複合列から方程式を作成するいくつかの学習手法を適用します。 データセットに行を追加することはめったにありません。ほとんどの場合、新しい列(変数または統計/機械学習用語の機能)を作成します。



6
MongoDB対Cassandra [終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか? Stack Overflowのトピックとなるように質問を更新します。 3年前休業。 最適な移行オプションは何かを評価しています。 現在、私は分割されたMySQL(水平パーティション)を使用しており、ほとんどのデータはJSONブロブに格納されています。複雑なSQLクエリはありません(dbをパーティション分割してから既に移行されています)。 現時点では、MongoDBとCassandraの両方がオプションのようです。私の状況: すべてのクエリで大量の読み取りを行い、通常の書き込みを減らす 「大規模な」スケーラビリティについて心配していません 簡単なセットアップ、メンテナンス、コードについてもっと心配 ハードウェア/サーバーのコストを最小限に抑える

12
配列サイズが1より大きいドキュメントのクエリ
次の形式のドキュメントを含むMongoDBコレクションがあります。 { "_id" : ObjectId("4e8ae86d08101908e1000001"), "name" : ["Name"], "zipcode" : ["2223"] } { "_id" : ObjectId("4e8ae86d08101908e1000002"), "name" : ["Another ", "Name"], "zipcode" : ["2224"] } 現在、特定の配列サイズに一致するドキュメントを取得できます。 db.accommodations.find({ name : { $size : 2 }}) これにより、name配列に2つの要素があるドキュメントが正しく返されます。ただし、フィールドの配列サイズが2より大きい$gtすべてのドキュメントを返すコマンドを実行することはできませんname。 db.accommodations.find({ name : { $size: { $gt : 1 } }}) name1より大きいサイズの配列を持つすべてのドキュメントを選択するにはどうすればよいですか(できれば現在のデータ構造を変更する必要がない)。

7
MongoDBでCouchDBを使用する場合とその逆の場合
これら2つのNoSQLデータベースの間に行き詰まっています。 私のプロジェクトでは、データベース内にデータベースを作成します。たとえば、動的テーブルを作成するソリューションが必要です。 したがって、ユーザーは列と行を含むテーブルを作成できます。MongoDBとCouchDBのどちらがこれに適していると思いますが、どちらが良いかわかりません。また、効率的なページングも必要です。

10
MongoDBの関係:埋め込みまたは参照?
私はMongoDBを初めて使用しました-リレーショナルデータベースのバックグラウンドから来ました。私はいくつかのコメントで質問構造を設計したいが、私は、コメントに使用する関係がわかりません:embedかreference? stackoverflowなどのコメント付きの質問は、次のような構造になります。 Question title = 'aaa' content = bbb' comments = ??? 最初は、次のように埋め込みコメント(embedMongoDBでは推奨されていると思います)を使用します。 Question title = 'aaa' content = 'bbb' comments = [ { content = 'xxx', createdAt = 'yyy'}, { content = 'xxx', createdAt = 'yyy'}, { content = 'xxx', createdAt = 'yyy'} ] 明らかですが、このケースが心配です:特定のコメントを編集したい場合、その内容と質問を取得するにはどうすればよいですか?何もありません_id、私はものを見つけるようにする、またquestion_ref私はその質問をご覧いただくこと。(私は初心者なので、_idand なしでこれを行う方法があるかどうかわかりませんquestion_ref。) 私は使用しなければなりrefませんembedか?次に、コメント用の新しいコレクションを作成する必要がありますか?
524 mongodb  reference  embed 


10
MongoDBまたは他のドキュメント指向データベースシステムをいつ使用するのですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 ビデオクリップとオーディオクリップ、写真、ベクターグラフィックスのプラットフォームを提供しています。データベースのバックエンドとしてMySQLから始め、最近、ファイルのすべてのメタ情報を格納するためのMongoDBを含めました。これは、MongoDBが要件によりよく適合するためです。たとえば、写真にはExif情報が含まれている場合があり、動画には、メタ情報を保存するオーディオトラックが含まれている場合があります。ビデオとベクターグラフィックスは共通のメタ情報などを共有しないため、MongoDBはこの非構造化データを保存して検索可能に保つのに最適です。 ただし、プラットフォームの開発と機能の追加は継続しています。次のステップの1つは、ユーザーにフォーラムを提供することです。ここで発生する質問は、MySQLデータベースを使用することです。MySQLデータベースは、フォーラムやフォーラム投稿などを保存するのに適していますか、それともMongoDBを使用しますか? したがって、問題は、MongoDBをいつ使用し、RDBMSをいつ使用するかです。mongoDBまたはMySQLのどちらを選択しますか?
516 mysql  mongodb 


11
配列フィールドが空でないMongoDBレコードを見つける
私のすべてのレコードには、「画像」というフィールドがあります。このフィールドは文字列の配列です。 この配列が空でない最新の10レコードが必要です。 私はググってみましたが、不思議なことに私はこれについてあまり知りませんでした。私は$ whereオプションを読みましたが、それがネイティブ関数にとってどれほど遅いか、そしてより良い解決策があるかどうか疑問に思っていました。 そしてそれでも、それはうまくいきません: ME.find({$where: 'this.pictures.length > 0'}).sort('-created').limit(10).execFind() 何も返しません。this.pictures長さビットなしで離れることは機能しますが、もちろん空のレコードも返します。
503 mongodb  mongoose 

10
特定の値を含む配列を持つドキュメントを検索します
このスキーマがある場合... person = { name : String, favoriteFoods : Array } ... favoriteFoods配列には文字列が入力されます。マングースを使って、好きな食べ物として「寿司」を持っている人をすべて見つけるにはどうすればよいですか。 私は次の線に沿って何かを望んでいました: PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...}); (私$containsはmongodb にはないことを知っています、解決策を知る前に私が見つけることを期待していたことを説明するだけです)
499 mongodb  mongoose 

19
MongoDBで同等のSQL結合を実行するにはどうすればよいですか?
MongoDBで同等のSQL結合を実行するにはどうすればよいですか? たとえば、2つのコレクション(ユーザーとコメント)があり、pid = 444のすべてのコメントとそれぞれのユーザー情報を取得したいとします。 comments { uid:12345, pid:444, comment="blah" } { uid:12345, pid:888, comment="asdf" } { uid:99999, pid:444, comment="qwer" } users { uid:12345, name:"john" } { uid:99999, name:"mia" } 特定のフィールド(例:... find({pid:444}))を持つすべてのコメントと、各コメントに関連付けられているユーザー情報を一度にプルする方法はありますか? 現時点では、まず自分の基準に一致するコメントを取得してから、その結果セット内のすべてのuidを把握し、ユーザーオブジェクトを取得して、コメントの結果とマージしています。私はそれを間違っているようです。
498 mongodb  join 

19
MongoDBまたはCouchDB-本番環境に適していますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 5年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 MongoDBまたはCouchDBが本番環境に対応する準備ができているかどうかを誰かが教えてくれるかどうか疑問に思っていました。 現在、これらのストレージソリューションを調べています(現時点ではMongoDBを支持しています)が、これらのプロジェクトは非常に若いため、これを採用する必要があることを上司に説得するために、かなり努力する必要があると予測しています。新技術。 私が知りたいのは: 今日、本番環境で誰がMongoDBまたはCouchDBを使用していますか? MongoDB / CouchDBをどのように使用していますか? この新しいストレージメカニズムを採用したときに、どのような問題(ある場合)に遭遇しましたか(そしてどのようにしてそれらを克服しましたか)? 対処しなければならない移行の問題にどのように対処しましたか? これらのソリューションのいずれかについて、共有したい良い/悪い経験はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.