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

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

4
エラー:updateOneを実行する場合、更新操作ドキュメントにはアトミック演算子が含まれている必要があります
私のコレクションには、ドキュメントが1つしかありません。 > db.c20160712.find() { "_id" : ObjectId("57ab909791c3b3a393e9e277"), "Dimension_id" : 2, "Attribute" : "good", "Hour" : "20160712_06", "Frequency_count" : 100 updateOneドキュメントを別のドキュメントに置き換えるために実行したいと思います。しかし、なぜそこにあるのError: the update operation document must contain atomic operatorsでしょうか? > db.c20160712.updateOne( { "Attribute" : "good"}, {"Type" : "DVD", "Title" : "Matrix, The", "Released" : 1999, "Genre" : "Action"}, { upsert: true} …
87 mongodb 

9
mongodbコレクションから最大値を取得する方法
私は次のようなmongodbコレクションを持っています: db.kids.find() //results [ {name:'tom', age:10}, {name:'alice', age:12}, .... ] SQLのように、このコレクションからMAX'age 'を取得するにはクエリが必要です。 SELECT MAX(age) FROM kids WHERE 1
87 mongodb  max 

7
起動時にMongoDBコンテナ用のDBを作成するにはどうすればよいですか?
私はDockerを使用しており、PHP、MySQL、Apache、Redisのスタックがあります。今すぐMongoDBを追加する必要があるため、Dockerfileで最新バージョンとMongoDB Dockerhubのdocker-entrypoint.shファイルを確認していましたが、デフォルトのDB、管理者ユーザー/パスワード、場合によっては認証を設定する方法が見つかりませんでした。docker-compose.ymlファイルからのコンテナのメソッド。 MySQLでは、たとえば次のようにいくつかのENV変数を設定できます。 db: image: mysql:5.7 env_file: .env environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} これにより、DBとユーザー/パスワードがパスワードとして設定されrootます。 MongoDBで同じことを達成する方法はありますか?誰かが何らかの経験や回避策を持っていますか?

5
GridFSは、本番環境で十分な速度と信頼性を備えていますか?
新しいWebサイトを開発し、通常のファイルシステムストレージと比較して多くの利点があるため、すべてのユーザーアップロードのストレージとしてGridFSを使用したいと思います。 nginxが提供するGridFSのベンチマークは、nginxが提供する通常のファイルシステムほど高速ではないことを示しています。 nginxのベンチマーク すでに実稼働環境でGridFSを使用している人、または新しいプロジェクトに使用する人はいますか?
86 mongodb  nginx  gridfs 

10
Mongooseから.populate()を使用して特定のフィールドを返します
クエリを実行した後、MongoDBからJSON値が返されます。問題は、返品に関連するすべてのJSONを返したくないということです。ドキュメントを検索しようとしましたが、これを行う適切な方法が見つかりませんでした。私はそれが可能であるかどうか、もしそうならそれを行う適切な方法は何であるか疑問に思いました。例:DB内 { user: "RMS", OS: "GNU/HURD", bearded: "yes", philosophy: { software: "FOSS", cryptology: "Necessary" }, email: { responds: "Yes", address: "rms@gnu.org" }, facebook: {} } { user: "zuckerburg", os: "OSX", bearded: "no", philosophy: { software: "OSS", cryptology: "Optional" }, email: {}, facebook: { responds: "Sometimes", address: "https://www.facebook.com/zuck?fref=ts" } } フィールドがユーザーに存在するが、別のフィールドを返さない場合、フィールドを返す適切な方法は何でしょうか。上記の例では[email][address]、RMSの[facebook][address]フィールドとZuckerburgのフィールドを返します。これは、フィールドがnullであるかどうかを確認しようとしましたが、機能していないようです。 …

4
Python用のMongoDBORM?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 sqlalchemy(SQlite)からmongodbを使用するように移行しようとしています。スキーマの垂直化をお願いします。私はmongokitを見ていますが、マッパーに似たものが必要です。これにより、dictではなく、オブジェクトのプロパティから保存されます。 既存のオブジェクトを変更せずに使用できるように、マッパーが欲しいのですが。
85 python  mongodb 

6
オーバーフローソートステージのバッファデータ使用量が内部制限を超えています
コードの使用: all_reviews = db_handle.find().sort('reviewDate', pymongo.ASCENDING) print all_reviews.count() print all_reviews[0] print all_reviews[2000000] カウントが印刷されます 2043484、が出力されall_reviews[0]ます。 ただし、印刷する場合 all_reviews[2000000]、次のエラーが発生します。 pymongo.errors.OperationFailure:データベースエラー:ランナーエラー:33554495バイトのオーバーフローソートステージのバッファデータ使用量が33554432バイトの内部制限を超えています これをどのように処理しますか?


4
Meteorのパブリッシュ/サブスクライブを理解する
のリストを表示する簡単なアプリを設定しましたProjects。autopublishすべてをクライアントに送信しないように、パッケージを削除しました。 <template name="projectsIndex"> {{#each projects}} {{name}} {{/each}} </template> ときにautopublishオンにして、これはすべてのプロジェクトが表示されます: if Meteor.isClient Template.projectsIndex.projects = Projects.find() それを削除したら、さらに次のことを行う必要があります。 if Meteor.isServer Meteor.publish "projects", -> Projects.find() if Meteor.isClient Meteor.subscribe "projects" Template.projectsIndex.projects = Projects.find() それで、クライアント側のfind()方法はサーバー側から公開されたレコードのみを検索すると言うのは正確ですか?find()一度だけ電話するべきだと感じたので、つまずきました。

9
Mac OS Xでmongodを停止するクリーンな方法は何ですか?
私はmongo1.8.2を実行していて、Macでそれをきれいにシャットダウンする方法を確認しようとしています。 私たちのubuntuサーバーでは、次の方法でmongoシェルからmongoをクリーンにシャットダウンできます。 > use admin > db.shutdownServer() しかし、私のMacでは、mongodプロセスを強制終了しません。出力は、「シャットダウンする必要がある」ことを示していますが、i ps -ef | grepmongoそれは私にアクティブなプロセスを示しています。また、mongoシェルを開いて、シャットダウンされなかったようにデータベースにクエリを実行することもできます。 ローカルでのdb.shutdownServer()からの出力は次のとおりです。 MongoDB shell version: 1.8.2 connecting to: test > use admin switched to db admin > db.shutdownServer() Tue Dec 13 11:44:21 DBClientCursor::init call() failed Tue Dec 13 11:44:21 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1 …
84 macos  mongodb  launchd 

13
Dockerコンテナが稼働するのを待つにはどうすればよいですか?
コンテナ内でサービスを実行する場合、たとえばmongodb、コマンド docker run -d myimage すぐに終了し、コンテナIDを返します。CIスクリプトでは、mongoコンテナーを実行した直後に、クライアントを実行してmongodb接続をテストします。問題は、サービスがまだ起動していないため、クライアントが接続できないことです。sleep 10スクリプトにbigを追加する以外に、コンテナーが稼働するのを待つオプションがありません。 Dockerにはwait、コンテナーが存在しないため、その場合は機能しないコマンドがあります。Dockerの制限ですか?
84 mongodb  docker 

5
マングースの制限/オフセットおよびカウントクエリ
クエリのパフォーマンスに関して少し奇妙なことです...ドキュメントの総数を実行し、制限およびオフセットできる結果セットを返すこともできるクエリを実行する必要があります。 したがって、合計57のドキュメントがあり、ユーザーは10のドキュメントを20でオフセットしたいと考えています。 これを行うには2つの方法が考えられます。1つは57個のドキュメントすべて(配列として返される)をクエリし、次にarray.sliceを使用して必要なドキュメントを返すことです。2番目のオプションは、2つのクエリを実行することです。最初のクエリはmongoのネイティブの「count」メソッドを使用し、次にmongoのネイティブの$ limitおよび$ skipアグリゲーターを使用して2番目のクエリを実行します。 どちらがより適切にスケーリングすると思いますか?すべてを1つのクエリで実行しますか、それとも2つの別々のクエリを実行しますか? 編集: // 1 query var limit = 10; var offset = 20; Animals.find({}, function (err, animals) { if (err) { return next(err); } res.send({count: animals.length, animals: animals.slice(offset, limit + offset)}); }); // 2 queries Animals.find({}, {limit:10, skip:20} function (err, animals) { if (err) { …
84 mongodb  mongoose 


14
MongoidまたはMongoMapper?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前に閉鎖されました。 この質問を改善する 私はMongoMapperを試しましたが、機能は完全です(ほぼすべてのAR機能を提供します)が、大きなデータセットを使用した場合のパフォーマンスにはあまり満足していませんでした。モンゴイドと比較した人はいますか?パフォーマンスが向上しますか?

15
コレクションにデータを入力したときにクエリで返されないように、Mongoose / MongoDBのパスワードフィールドを保護するにはどうすればよいですか?
2つのコレクション/スキーマがあるとします。1つは、ユーザー名とパスワードのフィールドを持つユーザースキーマです。次に、作成者フィールドにユーザースキーマへの参照があるブログスキーマがあります。マングースを使って次のようなことをした場合 Blogs.findOne({...}).populate("user").exec() ブログドキュメントとユーザーも入力しますが、Mongoose / MongoDBがパスワードフィールドを返さないようにするにはどうすればよいですか?パスワードフィールドはハッシュ化されていますが、返されるべきではありません。 パスワードフィールドを省略して、簡単なクエリで残りのフィールドを返すことができることはわかっていますが、populateを使用してそれを行うにはどうすればよいですか。また、これを行うためのエレガントな方法はありますか? また、ユーザーがログインしたりパスワードを変更したりする場合など、状況によってはパスワードフィールドを取得する必要があります。

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