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

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

7
RedisはmongoDBよりどのくらい高速ですか?
Redisは「Blazing Fast」であり、mongoDBも高速であると広く言われています。しかし、私は2つの結果を比較する実際の数値を見つけるのに苦労しています。同様の構成、機能、および操作が与えられた場合(そして、異なる構成および操作で要因がどのように変化するかを示す場合など)、Redisは10倍高速、2倍高速、5倍高速ですか? 私はパフォーマンスについてのみ話します。mongoDBは別のツールであり、機能セットが豊富であることを理解しています。これは「MongoDB はRedis より優れている」という議論ではありません。RedisはmongoDBをどの程度上回っていますか? この時点では、安価なベンチマークであっても、ベンチマークがないよりはましです。

3
ネストされたオブジェクトをクエリする方法は?
ネストされたオブジェクト表記でmongoDBをクエリするときに問題があります。 db.messages.find( { headers : { From: "reservations@marriott.com" } } ).count() 0 db.messages.find( { 'headers.From': "reservations@marriott.com" } ).count() 5 何が悪いのか分かりません。ネストされたオブジェクト表記がドット表記クエリと同じ結果を返すことを期待しています。どこが間違っているのですか?

3
MongoDB-ドキュメントの配列内のオブジェクトを更新する(ネストされた更新)
次のコレクションがあると仮定します。 { "_id" : ObjectId("4faaba123412d654fe83hg876"), "user_id" : 123456, "total" : 100, "items" : [ { "item_name" : "my_item_one", "price" : 20 }, { "item_name" : "my_item_two", "price" : 50 }, { "item_name" : "my_item_three", "price" : 30 } ] } 1-「item_name」:「my_item_two」の価格を上げたいのですが、存在しない場合は、「items」配列に追加する必要があります。 2-2つのフィールドを同時に更新するにはどうすればよいですか。たとえば、「my_item_three」の価格を引き上げると同時に、「合計」を引き上げます(値は同じ)。 私はこれをMongoDB側で行うことを好みます。そうでない場合は、クライアント側(Python)でドキュメントをロードし、更新されたドキュメントを作成して、MongoDBの既存のドキュメントと置き換える必要があります。 更新 これは私が試したものであり、オブジェクトが存在する場合は正常に動作します: db.test_invoice.update({user_id : 123456 , "items.item_name":"my_item_one"} …
204 mongodb 


11
MongoDBコレクションへの変更をリッスンする方法は?
MongoDBをデータストアとして使用して、一種のバックグラウンドジョブキューシステムを作成しています。ジョブを処理するワーカーを生成する前に、MongoDBコレクションへの挿入を「リッスン」するにはどうすればよいですか?前回からの変更があるかどうかを確認するために数秒ごとにポーリングする必要がありますか、それともスクリプトが挿入の発生を待機する方法はありますか?これは私が取り組んでいるPHPプロジェクトですが、Rubyまたは言語にとらわれずに自由に回答してください。
200 mongodb 

14
MongoDB-管理ユーザーが許可されていません
MongoDBに認証を追加しようとしています。 LinuxではMongoDB 2.6.1を使用してこれをすべて行っています。 私のmongod.confファイルは古い互換形式です (これはインストールに付属する方法です)。 1)(3)の説明に従って管理者ユーザーを作成しました http://docs.mongodb.org/manual/tutorial/add-user-administrator/ 2)次に、この行のコメントを外してmongod.confを編集しました auth = true 3)最後に、mongodサービスを再起動し、次のコマンドでログインしようとしました。 /usr/bin/mongo localhost:27017/admin -u sa -p pwd 4)接続できますが、接続するとこのように表示されます。 MongoDB shell version: 2.6.1 connecting to: localhost:27017/admin Welcome to the MongoDB shell! The current date/time is: Thu May 29 2014 17:47:16 GMT-0400 (EDT) Error while trying to show server startup warnings: …
200 mongodb  admin 

7
mongoose _idと文字列の比較
次のように、データをプルしてオブジェクトに貼り付けるnode.jsアプリケーションがあります。 var results = new Object(); User.findOne(query, function(err, u) { results.userId = u._id; } その保存されたIDに基づいてif / thenを実行すると、比較が真になることはありません。 if (results.userId == AnotherMongoDocument._id) { console.log('This is never true'); } 2つのIDのconsole.logを実行すると、それらは正確に一致します。 User id: 4fc67871349bb7bf6a000002 AnotherMongoDocument id: 4fc67871349bb7bf6a000002 これはある種のデータ型の問題であると想定していますが、results.userIdをデータ型に変換する方法がわからないため、上記の比較が真になり、外部委託された頭脳(別名Google)が支援できませんでした。

21
mongoimportを使用してcsvをインポートする方法
連絡先情報を含むCSVをインポートしようとしています: Name,Address,City,State,ZIP Jane Doe,123 Main St,Whereverville,CA,90210 John Doe,555 Broadway Ave,New York,NY,10010 これを実行しても、データベースにドキュメントが追加されないようです。 $ mongoimport -d mydb -c things --type csv --file locations.csv --headerline トレースは言うimported 1 objectsが、モンゴシェルを起動db.things.find()して実行しても、新しいドキュメントは表示されません。 何が欠けていますか?

10
mongodbでISODateを使用した日付クエリが機能しないようです
最も基本的な日付クエリでさえ、MongoDBで機能するようには思えません。次のようなドキュメントの場合: { "_id" : "foobar/201310", "ap" : "foobar", "dt" : ISODate("2013-10-01T00:00:00.000Z"), "tl" : 375439 } そして、次のようなクエリ: { "dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z" } } } 私は取得0の結果を実行するから。 db.mycollection.find({ "dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}} }) これが機能しない理由は何ですか? 参考までに、このクエリはSpringのMongoTemplateによって生成されているため、最終的にMongoDBに送信されるクエリを直接制御することはできません。 (PS) > db.version() 2.4.7 ありがとう!
189 json  mongodb  bson  isodate 

6
MongoDBの命名規則は何ですか?
データベース、コレクション、フィールド名など、MongoDBエンティティの推奨される命名規則のセットはありますか? 私はこれらの線に沿って考えていました: データベース:目的(単数形の単語)で構成され、「db」で終わる–すべて小文字:imagedb、resumedb、memberdbなど。 コレクション:小文字の複数形:画像、履歴書、 ドキュメントフィールド:lowerCamelCase、たとえば、memberFirstName、fileNameなど

28
ロックファイルを作成/開くことができません:/data/mongod.lock errno:13権限が拒否されました
mongoにec2でマウントされたドライブを使用させるにはどうすればよいですか?本当にわかりません。ドライブをルートとしてec2でフォーマットしたボリュームに接続し、ルートとして起動しましたが、ルートとしてアクセスできませんか?私はubuntu 12.04で実行しています。他のモンゴは走っていません mongoが/ dataに「db」ディレクトリを作成したことを確認します(つまり、/ data / db) cd / ls -al drwxr-xr-x 4 root root 4096 Mar 5 16:28 data cd /data ls -al total 28 drwxr-xr-x 4 root root 4096 Mar 5 16:28 . drwxr-xr-x 24 root root 4096 Mar 5 16:28 .. drwxr-xr-x 2 root root 4096 Mar …
187 mongodb 

4
2つの異なるコレクションでMongo ObjectIdが重複して生成される可能性はありますか?
2つの異なるコレクションのドキュメントに対して、まったく同じMongo ObjectIdを生成することは可能ですか?確かにありそうもないことですが、それは可能ですか? 具体的になりすぎずに、私が取り組んでいるアプリケーションでは、当サイトの本格的なユーザーに転向したいと思っている選挙で選ばれた役人の公開プロフィールを表示するためです。ユーザーと現在当サイトのメンバーではない選出された役員のために、別々のコレクションがあります。選出されたオフィシャルに関するさまざまなデータを含む他のさまざまなドキュメントがあり、それらはすべて、選出されたオフィシャルObjectIdを使用する人物にマッピングされます。 アカウントを作成した後も、選出された役人に関連付けられているデータを強調表示しますが、これらのデータは、ユーザーのコレクションの一部であり、対応するユーザーのObjectIdを使用して、プロファイルをアプリケーションとの相互作用にマップします。 数か月前にアプリケーションをMySqlからMongoに変換し始めました。移行中は、これらの両方のデータ型のレガシーMySql IDを保存し、選出された公式のMongo ObjectIdをユーザーに保存するようになりました選出された公式データにマップするドキュメント。 私は前に選ばれた公式のObjectIdとして新しいユーザーObjectIdを指定することだけを考えていましたが、物事を簡単にするために、既存のユーザーObjectIdとの衝突が発生しないようにしました。 あなたの洞察をありがとう。 編集:この質問を投稿してすぐに、私が提案した解決策はあまり良いアイデアではないことに気付きました。現在のスキーマをそのまま保持し、ユーザードキュメントで選出された公式の '_id'にリンクすることをお勧めします。
187 mongodb  database  nosql 

6
mongooseを介して項目をmongo配列にプッシュする
私は答えを探してSOを精査しましたが、自分が何を求めているのかを説明するための適切な言葉を見つけられなかったと確信しています。 基本的に私は 'people'という名前のmongodbコレクションを持っています。そのコレクションのスキーマは次のとおりです。 people: { name: String, friends: [{firstName: String, lastName: String}] } これで、データベースに接続し、空の友達配列を持つ「人」を正常に作成する、非常に基本的な高速アプリケーションがあります。 アプリケーションの2番目の場所には、友達を追加するためのフォームが用意されています。フォームはfirstNameとlastNameを取り込んでから、適切なピープルオブジェクトを参照するために名前フィールドを含むPOSTを受け取ります。 私が苦労しているのは、新しいフレンドオブジェクトを作成して、それをフレンド配列に「プッシュ」することです。 mongo consoleを使用してこれを行う場合、ルックアップ基準の後に2番目の引数として$ pushを指定してupdate関数を使用しますが、mongooseにこれを行う適切な方法を見つけることができないようです。 db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}}); 更新: それで、エイドリアンの答えは非常に役に立ちました。以下は私の目標を達成するために私がしたことです。 私のapp.jsファイルで、私はを使用して一時的なルートを設定しました app.get('/addfriend', users.addFriend); 私のusers.jsファイルのどこに exports.addFriend = function (req, res, next) { var friend = {"firstName": req.body.fName, "lastName": req.body.lName}; Users.findOneAndUpdate({name: req.user.name}, {$push: …

9
MongoDBデータストアディレクトリの変更
これまでは、MongoDBデータディレクトリを指定しておらず、30 GBのプライマリパーティションは1つしかありませんでした。 容量が足りなくなり、新しいハードディスクを追加しました。/var/lib/mongodb/既存のインストールに影響を与えずにすべてが新しいディスクから実行されるように、どうやってデータを転送し(これは明らかににあります)、MongoDBを構成できますか?

15
mongodbで複数の配列要素を更新する方法
要素の配列を保持するMongoドキュメントがあります。 = XXの.handled配列内のすべてのオブジェクトの属性をリセットしたいと思います.profile。 ドキュメントは次の形式です。 { "_id": ObjectId("4d2d8deff4e6c1d71fc29a07"), "user_id": "714638ba-2e08-2168-2b99-00002f3d43c0", "events": [{ "handled": 1, "profile": 10, "data": "....." } { "handled": 1, "profile": 10, "data": "....." } { "handled": 1, "profile": 20, "data": "....." } ... ] } だから、私は以下を試しました: .update({"events.profile":10},{$set:{"events.$.handled":0}},false,true) ただし、各ドキュメントで最初に一致した配列要素のみを更新します。(これは$-位置演算子の定義された動作です。) 一致した配列要素をすべて更新するにはどうすればよいですか?

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