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

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

7
MySQLとMongoDB 1000の読み取り
私はMongoDbに非常に興奮しており、最近それをテストしています。MySQLにpostと呼ばれるテーブルがあり、 'id'というフィールドでのみ約2,000万のレコードにインデックスが付けられました。 MongoDBと速度を比較したかったので、巨大なデータベースからランダムに15レコードを取得して印刷するテストを実行しました。mysqlとMongoDBに対してそれぞれ約1,000回クエリを実行しましたが、速度に大きな違いはないことに驚いています。たぶんMongoDBは1.1倍高速です。それは非常に残念です。私が間違っていることはありますか?私のテストは完璧ではありませんが、集中的な雑用の読み取りに関しては、MySQLはMongoDbと同等です。 注意: デュアルコア+(2スレッド)i7 cpuおよび4GB ram MySQLに20のパーティションがあり、それぞれ100万レコード MongoDBのテストに使用されるサンプルコード <?php function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_taken = 0; $tries = 100; // connect $time_start = microtime_float(); for($i=1;$i<=$tries;$i++) { $m = new Mongo(); $db = $m->swalif; $cursor = $db->posts->find(array('id' => array('$in' => …

25
MongoDBのすべてのコレクションをエクスポートする方法は?
次のコマンドを使用して、MongoDBのすべてのコレクションをエクスポートします。 mongoexport -d dbname -o Mongo.json 結果は次のとおりです。 コレクションが指定されていません! マニュアルによると、コレクションを指定しない場合、すべてのコレクションがエクスポートされます。 しかし、なぜこれが機能しないのですか? http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection MongoDBのバージョンは2.0.6です。
319 mongodb  export 

14
MongoDBドキュメントからフィールドを完全に削除する方法は?
{ name: 'book', tags: { words: ['abc','123'], lat: 33, long: 22 } } これがドキュメントであるとします。wordsこのコレクションのすべてのドキュメントから「」を完全に削除するにはどうすればよいですか?すべてのドキュメントに " words"を付けないようにします。 { name: 'book', tags: { lat: 33, long: 22 } }


3
Mongooseの「__v」フィールドとは
私が使用しているMongooseと、バージョン3をMongoDBバージョン2.2。ドキュメントに__vフィールドが表示され始めたことに気づきましたMongoDB。バージョン管理と関係がありますか?使い方は?

8
MongoDBでデータのバージョン管理を実装する方法
MongoDBでデータのバージョン管理をどのように実装するかについて、考えを共有していただけますか。(私はCassandraについて同様の質問をしました。どのdbがより適しているかについての考えがある場合は共有してください) 単純なアドレス帳のレコードにバージョンを付ける必要があるとします。(アドレス帳のレコードはフラットなjsonオブジェクトとして保存されます)。私はその歴史を期待しています: まれに使用されます 一度に使用して「タイムマシン」形式で表示します 1つのレコードに数百よりも多くのバージョンはありません。履歴に有効期限はありません。 私は以下のアプローチを検討しています: 新しいオブジェクトコレクションを作成して、レコードの履歴またはレコードへの変更を保存します。アドレス帳エントリへの参照とともに、バージョンごとに1つのオブジェクトを格納します。このようなレコードは次のようになります。 { '_id': '新しいID'、 「ユーザー」:user_id、 'timestamp':タイムスタンプ、 'address_book_id': 'アドレス帳レコードのID' 'old_record':{'first_name': 'Jon'、 'last_name': 'Doe' ...} } このアプローチは、ドキュメントごとにバージョンの配列を格納するように変更できます。しかし、これは何の利点もなく遅いアプローチのようです。 バージョンをアドレス帳エントリに添付されたシリアル化(JSON)オブジェクトとして保存します。このようなオブジェクトをMongoDBドキュメントに添付する方法がわかりません。おそらく文字列の配列として。(CouchDBによるシンプルなドキュメントのバージョニングをモデルにしています)


12
Node.js WebアプリケーションでMongoDB接続を管理するにはどうすればよいですか?
私は、MongoDBでnode-mongodb-nativeドライバーを使用してWebサイトを作成しています。 接続を管理する方法についていくつか質問があります。 すべてのリクエストに対して1つのMongoDB接続を使用するだけで十分ですか?パフォーマンスの問題はありますか?そうでない場合、アプリケーション全体で使用するグローバル接続をセットアップできますか? そうでない場合、リクエストが到着したときに新しい接続を開き、リクエストを処理したときにそれを閉じるとよいですか?接続を開いたり閉じたりするには費用がかかりますか? グローバル接続プールを使用する必要がありますか?ドライバーにネイティブ接続プールがあると聞きました。それは良い選択ですか? 接続プールを使用する場合、いくつの接続を使用する必要がありますか? 他に気をつけるべきことはありますか?

10
データベースとしてのNoSQL(MongoDB)とLucene(またはSolr)
ドキュメントベースのデータベースに基づいて成長するNoSQLの動きに伴い、最近、MongoDBを検討しました。Lucene(およびSolrのユーザー)と同様に、アイテムを「ドキュメント」として扱う方法との驚くべき類似性に気づきました。 それで、質問:Lucene(またはSolr)よりもNoSQL(MongoDB、Cassandra、CouchDBなど)を「データベース」として使用する理由は何ですか? 私が(そして他の人も確実に)答えを探しているのは、それらのいくつかの詳細な比較です。リレーショナルデータベースのディスカッションは、目的が異なるため、まとめてスキップしてみましょう。 Luceneには、強力な検索や重み付けシステムなど、いくつかの深刻な利点があります。Solrのファセットは言うまでもありません(SolrはすぐにLuceneに統合されます、そうです!)。Luceneドキュメントを使用してIDを保存し、MongoDBと同じようにドキュメントにアクセスできます。それをSolrと組み合わせると、WebServiceベースの負荷分散ソリューションが得られます。 MongoDBの同様のデータ保存とスケーラビリティについて話すとき、VelocityやMemCachedなどのアウトオブプロセスキャッシュプロバイダーの比較を投入することもできます。 MongoDBに関する制限はMemCachedの使用を思い出させますが、MicrosoftのVelocityを使用して、MongoDBよりもグループ化とリスト収集の機能を強化できます(私はそう思います)。メモリにデータをキャッシュするよりも高速またはスケーラブルなものを取得できません。Luceneにもメモリプロバイダーがあります。 MongoDB(およびその他)には、APIの使いやすさなど、いくつかの利点があります。ドキュメントを新規作成し、IDを作成して保存します。できました。簡単です。

4
cursor.forEach()の「続行」
meteor.jsとMongoDBを使用してアプリを構築していますが、cursor.forEach()について質問があります。各forEach反復の最初にいくつかの条件を確認し、その要素に対して操作を実行する必要がない場合は要素をスキップして、時間を節約したいと思います。 これが私のコードです: // Fetch all objects in SomeElements collection var elementsCollection = SomeElements.find(); elementsCollection.forEach(function(element){ if (element.shouldBeProcessed == false){ // Here I would like to continue to the next element if this one // doesn't have to be processed }else{ // This part should be avoided if not neccessary doSomeLengthyOperation(); } …

29
基本的なHTMLビューをレンダリングしますか?
Expressフレームワークを使用して基本的なnode.jsアプリを作成しようとしています。ファイルがあるviewsフォルダがありindex.htmlます。しかし、Webブラウザをロードすると、次のエラーが表示されます。 エラー:モジュール「html」が見つかりません 以下は私のコードです。 var express = require('express'); var app = express.createServer(); app.use(express.staticProvider(__dirname + '/public')); app.get('/', function(req, res) { res.render('index.html'); }); app.listen(8080, '127.0.0.1') ここで何が欠けていますか?

12
mongoコンソールでObjectIdを使用してオブジェクトを検索するにはどうすればよいですか?
私はこの質問がC#とPerlで回答されているのを見つけましたが、ネイティブインターフェイスでは見つかりませんでした。私はこれがうまくいくと思った: db.theColl.find( { _id: ObjectId("4ecbe7f9e8c1c9092c000027") } ) クエリは結果を返しませんでした。db.theColl.find()ObjectIdを実行して取得することにより、4ecbe7f9e8c1c9092c000027を見つけました。そのコレクションには数千のオブジェクトがあります。 mongodb.orgのWebサイトで見つけたすべてのページを読みましたが、見つかりませんでした。これは奇妙なことですか?それは私にはかなり普通のようです。
265 mongodb 

10
Mongoose:findOneAndUpdateが更新されたドキュメントを返さない
以下は私のコードです var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); var Cat = mongoose.model('Cat', { name: String, age: {type: Number, default: 20}, create: {type: Date, default: Date.now} }); Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){ if(err){ console.log("Something wrong when updating data!"); } console.log(doc); }); 私のmongoデータベースにはすでにいくつかのレコードがあります。このコードを実行して、年齢が17歳の名前を更新し、結果をコードの最後に出力します。 しかし、なぜ変更された名前ではなく、コンソールから同じ結果が得られるのですか。ただし、mongo dbコマンドラインに移動して「db.cats.find();」その結果、名前が変更されました。 次に、このコードを再度実行して結果を変更します。 私の質問は次のとおりです。データが変更された場合、なぜconsole.logで最初のデータを取得したのですか。


4
mongodb / mongoose findMany-配列にリストされたIDを持つすべてのドキュメントを検索します
_idの配列があり、それに応じてすべてのドキュメントを取得したいのですが、それを行うための最良の方法は何ですか? 何かのようなもの ... // doesn't work ... of course ... model.find({ '_id' : [ '4ed3ede8844f0f351100000c', '4ed3f117a844e0471100000d', '4ed3f18132f50c491100000e' ] }, function(err, docs){ console.log(docs); }); 配列には数百の_idが含まれる場合があります。

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