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

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

20
useNewUrlParserをtrueに設定することにより、「現在のURL文字列パーサーは非推奨です」という警告を回避
MongoDBインスタンスへの接続を確立するデータベースラッパークラスがあります。 async connect(connectionString: string): Promise<void> { this.client = await MongoClient.connect(connectionString) this.db = this.client.db() } これは私に警告を与えました: (ノード:4833)DeprecationWarning:現在のURL文字列パーサーは非推奨であり、将来のバージョンでは削除される予定です。新しいパーサーを使用するには、オプション{useNewUrlParser:true}をMongoClient.connectに渡します。 このconnect()メソッドは、MongoClientOptions2番目の引数としてインスタンスを受け入れます。ただし、というプロパティはありませんuseNewUrlParser。また、これらのプロパティを接続文字列に次のように設定しようとしましたが、mongodb://127.0.0.1/my-db?useNewUrlParser=true警告には影響しません。 ではuseNewUrlParser、これらの警告を削除するように設定するにはどうすればよいですか?スクリプトはcronとして実行する必要があり、これらの警告はゴミメールのスパムにつながるため、これは私にとって重要です。 対応するmongodbバージョンのドライバを使用しています3.1.0-beta4@types/mongodbパッケージのしてい3.0.18ます。どちらも最新のを使用して使用できnpm installます。 回避策 古いバージョンのmongodbドライバーを使用する: "mongodb": "~3.0.8", "@types/mongodb": "~3.0.18"





10
MongoDBがv4以前にACIDに準拠していないとはどういう意味ですか?
私はデータベースの専門家ではなく、正式なコンピュータサイエンスの経歴もありません。ACIDに準拠していなかったv4より前の古いMongoDBバージョンを使用した場合に発生する可能性のある現実の否定的なことを知りたいのですが。これは、ACIDに準拠していないデータベースに適用されます。 MongoDBはアトミック操作を実行できますが、主にパフォーマンス上の理由により、「従来のロックと複雑なトランザクションをサポート」しないことを理解しています。また、データベーストランザクションの重要性と、データベースが銀行向けであり、すべてを同期する必要のある複数のレコードを更新する場合の例を理解しています。停電により、クレジットは購入と同等になります。 しかし、MongoDBについての会話に入ると、データベースが実際にどのように実装されているかについての技術的な詳細を知らない私たちは、次のようなステートメントを投げかけ始めます。 MongoDBはMySQLやPostgresよりもはるかに高速ですが、100万分の1のように、「正しく保存されない」可能性はわずかです。 「正しく保存されない」という部分は、この理解に言及しています。MongoDBに書き込んでいる瞬間に停電があった場合、特定のレコードが存在する可能性があります(たとえば、10の属性を持つドキュメントのページビューを追跡しているとします)それぞれ)、1つのドキュメントは5つの属性しか保存しませんでした...つまり、時間の経過とともにページビューカウンターが「少し」オフになります。どれだけ正確かは決してわかりません。99.999%正しいことはわかりますが、100%は正しくありません。これは、具体的にこれをmongodbのアトミック操作にしない限り、操作がアトミックであることが保証されないためです。 ですから、私の質問は、MongoDBが「正しく保存」されない場合とその理由の正しい解釈は何ですか?ACIDのどの部分が満足できませんか。また、どのような状況で、0.001%のデータがオフであるかをどのようにして知ることができますか?これはどういうわけか修正できませんか?そうでない場合users、レコードが保存されない可能性があるため、MongoDBにテーブルのようなものを格納してはならないことを意味しているようです。しかし、その場合も、その1 / 1,000,000ユーザーは「もう一度サインアップしてみる」必要があるかもしれません。 MongoDBのようなACID非準拠データベースでネガティブなことが発生するタイミング/理由のリストを探しているだけです。理想的には、標準の回避策(バックグラウンドジョブを実行してデータをクリーンアップするか、SQLだけを使用するなど)がある場合に理想的です。 。
226 sql  mongodb  acid  database  nosql 

7
MongoDBのすべてのドキュメントのフィールド名を変更するにはどうすればよいですか?
MongoDBに5000レコードのコレクションがあり、それぞれに次のようなものが含まれていると仮定します。 { "occupation":"Doctor", "name": { "first":"Jimmy", "additional":"Smith" } すべてのドキュメントでフィールドの名前を「追加」から「最後」に変更する簡単な方法はありますか?私が見た$リネームドキュメントで作業を私はサブフィールドを指定する方法の本当に明確ではありませんよ。
223 mongodb 

19
MongoDBコレクションのすべてのドキュメントに対して単一のフィールドを選択するにはどうすればよいですか?
私のMongoDBには、フィールドnameとを含む10レコードの学生コレクションがありrollます。このコレクションの1つのレコードは次のとおりです。 { "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"), "name" : "Swati", "roll" : "80", } roll従来のデータベースと同じように、コレクション内の10レコードすべてのフィールドのみを取得するには、次のようにします。 SELECT roll FROM student 私は多くのブログを調査しましたが、すべてに、WHERE句が含まれている必要があるクエリが作成されています。次に例を示します。 db.students.find({ "roll": { $gt: 70 }) クエリは次と同等です。 SELECT * FROM student WHERE roll > 70 私の要件は、条件なしで単一のキーのみを見つけることです。それで、そのためのクエリ操作は何ですか?


3
MongoDB:1つのフィールドのすべてのドキュメントを更新する
foo仮に名前の付いたコレクションを持っています。 の各インスタンスにfooは、エポック以降のUNIXタイムスタンプであるlastLookedAtというフィールドがあります。MongoDBクライアントを通過して、既存のすべてのドキュメント(そのうちの約20,000)のタイムスタンプを現在のタイムスタンプに設定できるようにしたいと思います。 これを処理する最良の方法は何ですか?
214 mongodb 



7
日付に基づいてクエリを返す
mongodbにこのようなデータがあります { "latitude" : "", "longitude" : "", "course" : "", "battery" : "0", "imei" : "0", "altitude" : "F:3.82V", "mcc" : "07", "mnc" : "007B", "lac" : "2A83", "_id" : ObjectId("4f0eb2c406ab6a9d4d000003"), "createdAt" : ISODate("2012-01-12T20:15:31Z") } クエリを実行db.gpsdatas.find({'createdAt': ??what here??})して、上記のデータ結果をデータベースから返すにはどうすればよいですか?
209 mongodb 



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