問題タブ [node-mongodb-native]

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 投票する
2 に答える
1302 参照

node.js - Node.js スクリプトの MongoClient が終了しないのはなぜですか?

MongoLab の MongoDB データベースにいくつかの変更を加えるワンショット Node スクリプトがあります。db.close()ただし、終了すると、イベントループを終了することはありません (常に ctrl+C を実行する必要があります) db.logout()

奇妙なことに、ローカルで実行中のインスタンスを起動してmongodそれに接続すると、スクリプトは正常に終了しますが、リモート接続は決して終了しません。

これは、まだ問題があるスクリプトの短いバージョンです (コマンド ラインでサーバーへの URL を取得します)。どうしたの?

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

mongodb - mongodbのコレクションでfind()関数を呼び出しているときに返されるドキュメントの数を制限する

find()私の質問が示唆しているように、次のようなコレクションで関数が呼び出されたときに表示されるドキュメントの数を制限したいと思います。

上記のコードは、一時コレクションに存在するすべてのドキュメントを表示します。しかし、表示されるドキュメントの数を10に制限する方法はありますか?そして、最後の10個のドキュメントを送信したいと思います(最後に、最近追加されたドキュメントを意味します)

何か提案をいただければ幸いです。

よろしくお願いします。

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

node.js - mongodbは、jsonを使用して同じ行の複数のフィールドを更新します

node.jsmongodbネイティブドライバーを使用しています。

タスクと呼ばれるmongodbコレクションがあるとしましょう。各タスクは次のようになります。

ユーザー入力から、フォームのJSONオブジェクト「newData」を取得します

このnewDataでmongodb行を更新する方法は次のようになります

ここにはフィールドが2つしかないため、newDataの各ペアで$ setを使用しても問題ありませんが、私の質問は、newDataの各ペアに$ setを記述せずに、newDataについて一度言及するだけで行を更新できるかどうかです。(明らかに、newDataのペアキーはmongodb行のものと同じに保ちます)

0 投票する
2 に答える
2910 参照

node.js - DBへの参照をルートに渡すことがNode/Expressプロジェクトで機能していません

node +expressを使用して単純なRESTAPIを作成し、ルーティングロジックをdbロジックから分離しようとしています。ルートからDBにアクセスするのに問題があります。

これが私のserver.jsコードです:

post.jsファイルのロジックは次のとおりです。

postオブジェクトは、ルートから呼び出されたときに使用するためにdb参照を保持すると思いますが、次のエラーが発生します。

誰かが私を正しい方向に向けることができますか?どうもありがとう

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

node.js - node-mongodb-native MongoClient が予期せず接続を閉じる

私はmongodbで予期せず閉じられた接続をたくさん探してきましたが、接続を閉じたい人からの質問しか見つけることができません.

node-mongodb-native を使用してデータベースに接続していますが、一見ランダムな「エラー: 接続が閉じられました」というメッセージが表示され続けます。リクエストを手動で再試行すると(ブラウザの更新)、リクエストは機能します。

これの原因は何ですか?役立つ簡単なオプションはありますか?

次を使用してdbハンドルを取得しています:

私はhttps://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/connection/server.jsを調べていましたが、接続プールが一般的にどのように管理されているかについての私の限られた理解が私をつまずかせていることに気づきました上。サーバーの存続期間中、それらは開いたままになるという印象を受けました。誰か助けてくれませんか?

編集: mjhm のコメントを読んだ後、私は TCP キープアライブをより深く調べ始めました。これが Azure の行為である可能性があることを示唆するいくつかのサイトに出くわしました (そして、この質問は現在誤分類されています!)。どうやら、Azure ロード バランサーは 1 分間のアクティビティ後に接続を切断するようです。私は Azure Websites を使用しているため、当てはまる場合と当てはまらない場合がありますが、この洞察は新しい調査を開始するのに十分有望だと思います。詳細はこちらhttp://blogs.msdn.com/b/avkashchauhan/archive/2011/11/12/windows-azure-load-balancer-timeout-details.aspx

0 投票する
2 に答える
3586 参照

javascript - MongoDB が認識する JSON で ISODate および ObjectID フィールドを表す方法はありますか?

ノード内の MongoDB に JSON ファイルをインポートしようとしています。これが私がやろうとしていることです:

NodeJS は JSON を JSON として自動的にインポートできることに注意してください。これは便利ですが、JSON は ISODate や ObjectID などのオブジェクトを処理しません。インポートしようとしている JSON データの抜粋を次に示します。

./data/orgs.json:

Node.js には mongodb ネイティブ ドライバーを使用しています。

日付の整数表現を使用しようとしましたが、うまくいきませんでした。

MongoDB が認識する JSON で ISODate および ObjectID フィールドを表す方法はありますか?

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

node.js - node.js、node-mongodb-native、DRY接続?

現在、./routes の下のすべてのファイルに次のコードがあります。

この接続を中央の場所で開く方法はありますか? 各オブジェクトがデータベース内に独自のコレクションを持つことは一般的に受け入れられていますか?

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

node-mongodb-native - カーソルに問題があります

2つのドキュメントを1つずつフェッチしようとしています。テスト目的でbatchSizeを1に設定しました。そして、2番目のドキュメントを取得できません。ただし、batchSizeを2に設定すると、問題なく2番目のドキュメントが返されます。

0 投票する
3 に答える
8386 参照

node.js - ノードからの MongoDB 切断/再接続の処理

MongoDB 接続が数分間アイドル状態になると、次のリクエストがエラーで終了します。コマンド ライン クライアントからは、mongo次のようになります。

MongoHQ と MongoLab のサンドボックス インスタンスに対して問題が発生しています。

再接続により、次のリクエストは正常に処理されます。これは私の Web アプリの問題です。数分間操作を行わないと、Web リクエスト中にこのエラーが発生するからです。私を驚かせたことが2つあります。

  1. その MongoDB 接続は非常に定期的かつ頻繁に破棄されます。
  2. 再接続後に自動的に再試行するのではなく、ドライバーが単に例外を発生させること (私は、mongoose を使用する connect-mongo を使用し、次にnode-mongodb-nativeを使用します)。

これは他のみんなの経験ですか?これはどのように扱われるべきですか?アプリ開発者がデータベース操作を再試行例外処理のナンセンスでラップすると、私は驚かれることでしょう。

0 投票する
2 に答える
1801 参照

node.js - NodeJSのMongoDBGridFSドライバーは、同じ名前のファイルを上書きします

node-mongodb-nativeを使用する次のコード(簡潔にするためにエラーチェックを削除)があります。

それを実行すると、正常に動作し、ファイルがGridFSに保存されます。

ここで、システムでそのファイルを削除し、同じ名前で内容が異なる新しいファイルを作成し、そのコードを再度実行すると、ファイルがアップロードされます。ただし、GridFSにすでに保存されているファイルを上書きしているようです。_id同じままですがmd5、新しい値に更新されています。したがって、ファイルが異なっていても、名前が同じであるため、GridFSの現在のファイルが上書きされます。

同じ名前の2つのファイルをアップロードする方法はありますか?が一意の場合_id、ドライバーがファイル名のみに基づいてファイルを上書きするのはなぜですか?

GitHubでも同様の問題が見つかりましたが、の最新バージョンのドライバーを使用しておりnpm、上記で説明したことを実行します。