問題タブ [mongo-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4460 参照

mongodb - mongoDb のキー値の順序

モンゴコード:

デシベル。温度。挿入 ({"x":3、"y":4});

デシベル。温度。find();

OUTPUT { "_id" : ObjectId("52b418fb132c1f3236831447"), "y" : 4, "x" : 3 }

私の場合(上記)の理由を理解するのを手伝ってください。注文を挿入している間でも、findメソッドは最初にY値を表示し、後でx値を表示します。

どんな助けにも感謝します。

0 投票する
1 に答える
567 参照

performance - mongoシェルでセーフモードを無効にする方法は?

タイトルに関する短い質問です。デフォルトでセーフモードになっているmongo Shellを使用していますが、この動作を無効にすることでパフォーマンスを向上させたいと考えています。

コンテキストを知りたい人への長い質問: 私は次のような膨大なデータセットに取り組んでいます

および他のいくつかのフィールドと、そのような約2億5000万のドキュメントがあります(インデックスの重みが36Goのデータベース全体)。日付を実際の ISODATE フィールドに変換したい。次のような更新クエリを作成する方法を少し検索しました

しかし、これを機能させる方法が見つからず、ドキュメントを次々に取得し、新しい Date(stringdate) を値として取得する新しいフィールドを設定する更新を行うスクリプトを作成することにしました。クエリは _id を使用するため、デフォルトのインデックスが使用されます。

問題は、非常に長い時間がかかることです。新しいフィールドが追加されたときにデータの再配置の問題があるため、データベースを作成したときに空の日付オブジェクトを挿入した場合にのみ、パフォーマンスが向上することをすでに理解しました。また、関連するフィールドにインデックスを設定して、データベースをチャンクごとに処理します。最後に、サーバーとワークステーションの両方で複数の mongo クライアントを同時に実行して、制限要因がデータベース ロックの可用性であり、CPU やネットワーク コストなどの他の要因ではないことを確認しました。

mongotop、mongostats、および Web 監視インターフェイスを使用して全体を監視し、70% の時間で書き込みロックがかかっていることを確認しました。mongodb の書き込みロックがより正確な粒度を持っていないことに少しがっかりしています。干渉のリスクがない限り、同じコレクションに対して同時書き込み操作を許可しないのはなぜですか? 考えてみると、各シャードに個別のロックがあったため、同じサーバーにとどまっている場合でも、コレクションをダースのシャードにシャーディングする必要がありました。

しかし、現在のデータベース構造に対して今は何もできないので、少なくとも私の時間の 90% (現在の 70%) を mongo で書くためにパフォーマンスを改善する方法を探しました。デフォルトのmongoシェルの私のスクリプトは、更新を行うたびに、後で呼び出される getLastError() もあり、99.99%の成功の可能性があり、失敗した場合でも私はできるので、私はそれを望まない単一の例外を取得するために、大きなプロセスの終了後に集約リクエストを作成します。

getLastError 呼び出しを非アクティブにすることでパフォーマンスが大幅に向上するとは思いませんが、試してみる価値はあると思います。

ドキュメントを調べたところ、デフォルトの動作は確認できましたが、変更手順はわかりませんでした。なにか提案を?

0 投票する
1 に答える
1121 参照

mongodb - 別のフィールドの値を使用して MongoDB サブドキュメント フィールドを更新する

this SO questionと実際にthis answerに基づいて、サブドキュメントのフィールドを更新しようとしました。

私のコードは次のとおりです。

elem.events[i]に facebook_id または eventbrite_id がある場合、配列である URL をそれぞれ更新します (スキーマ上の理由から)。

しかし、私は

本当に理解できません。現在のユーザーの権限は問題ありません。

0 投票する
1 に答える
4895 参照

javascript - Mongo シェルでの新しい日付と ISO 日付の変換

私はいくつかの日付条件で mongoExport を試していました。ここで、日付はエポック形式でなければならないことを読みました。

質問は、

以下試してみましたが、

2013 年 10 月 16 日を指定したと仮定すると、「2013-11-16」が返されました。エポック形式も同様です。

月を 11 に変更する理由を教えてください。

0 投票する
1 に答える
4249 参照

mongodb - mongo DBシェルでクエリを実行した後、結果オブジェクトを反復処理する方法

変数結果の中に JSON 配列オブジェクトのようなもの[{_id:64,minitem:30},{},{}...]があります。これは、最小スコアの射影である集計操作の結果です。この結果を繰り返し処理し、DB から minvales を削除する必要があります。結果オブジェクトをループできません..私は試しました

これは効果がないようです。DBは変更されません。これをmongoシェルから試しています。