問題タブ [mongoose]
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.
performance - NodeJs のパフォーマンスの問題
NodeJs を使用してリアルタイム統計アプリケーションを構築しています。プロトタイプの場合、クラスター NodeJs ( http://learnboost.github.com/cluster/ ) とネイティブ nodejs ドライバーを使用する MongoDb を使用するnodejs サーバーでのテストのために、RackSpace サーバーでクアッドコア AMD Opteron を使用しています。.
基本的に、クライアントの Web サイトにコンテンツを配信する JS コードを会社のプロジェクトに挿入しました。このコードは、10 秒ごとにサーバーに "ping" を実行し、画像を呼び出し、サーバー側で取得して MongoDb コレクションに挿入 (または更新) するパラメーターを渡します。1日の「遅い」時間帯に、約3000の接続を取得します(ターミナルでnetstat -natpコマンドを使用してこれらを取得します)。これにより、クラスターが各コアの約25%を使用します(「top」コマンドを使用してこれらを取得します)。しかし、「忙しい」時間には、クラスターが狂うたびに約7000以上の接続が発生し(各コアの約80%以上の使用)、時間が経つにつれてノードが劣化するようです。これは正常ですか?それとも、Nodejs はこれらのヒットをより「簡単な」方法で処理する必要がありますか? Mongoose を使用すると、パフォーマンスが向上しますか?
MongoDb に興味がある場合は、1 つのコアの約 4% を使用しますが、これは私にとっては問題ありません (インデックスを配置しない場合、使用率は約 50% 以上でしたが、少なくとも、インデックスはこのパフォーマンスの問題を解決しました)。
辛抱強くありがとう、乾杯。
編集:
挿入を行うコードは次のようになります: db.open(function(err, db) { });
javascript - 一意のインデックスがMongoose/MongoDBで機能しない
Mongoose / MongoDbを使用して一意のインデックスを作成する際に問題が発生し、機能させることができません。一意のインデックスを設定すると、同じ属性値を持つ2つのドキュメントを追加できます。
考えられるすべてのことを試しました-再起動(すべて)構文の変更など。
コード
追加>>これは、エンティティを保存するために使用している方法です。
<<
モンゴ出力
MongoHubにチェックインしたとき、インデックスが表示されないため、作成されたようには見えません。
これはこの質問の複製ですが、私にとって有効な答えはありません。
javascript - Mongoose の問題: スキーマが定義されていません
やあみんな、私はマングースとノードで遊んでみましたが、最も単純な実行でさえ問題があります...私はこのコードを持っています:
これはサンプルコードであるため、実行する必要があります...しかし、次のエラーがあります。
これの何が悪いのか誰か知っていますか?ありがとう。
mongodb - インクリメント オブジェクトが機能しない (mongoose、node.js、express、mongodb)
ここにこのアプリのコミットがあります
基本的な問題は、server.js @ 234 行目に、param オブジェクトのカウンターをインクリメントするメソッドがあることです。これは機能しません。適切なデータモデルについては、models.js を参照してください。
242 行目で、param オブジェクト内のドキュメントの配列であるピボット オブジェクトのカウンターに別のインクリメントがあります。ここでは、同じように設定されたカウンターが機能します。ここで何が間違っているのかわかりません。
編集: github からコードを追加
データモデル
Route Pre-Param 条件
リダイレクト
いくつかのデバッグ
console.dir(req.record.counter) 親オブジェクトを出力するようで、counter は [Circular] と表示されます。
上記のパラメーターのピボット「gmail」で console.dir(req.pivot.counter) を実行すると、戻ります。この場合、カウンターが増加し、正常に表示されます
mongodb - Mongooseは私が46のレコードを持っていると言っています、mongoDBは私がゼロを持っていると言いますか?
次のテストスクリプトは、46のレコードがあることを示しています。
出力:
一方、mongoシェルを使用してコードを読み取ろうとすると、別の話が得られます。
私の記録はどこに隠れていますか?
mongodb - Mongoose で個別の値を照会するにはどうすればよいですか?
コレクションのすべての一意の都市を取得できるようにしたいという問題があり、私のコードは次のようになります。
ネイティブの MongoDb では を実行できましたがdb.person.distinct("born_in_city")
、Mongoose に相当するものはないようです。これを行うために自分ですべてのドキュメントを反復処理する唯一のオプションですか、それともより良い解決策がありますか?
node-mongodb-native
回答者が示唆するように基礎を使用しようとして、私はこれを試みました:
ただし、results
空であり、エラーはありません。collections
また、可能であれば、返されるものをフィルタリングするよりも、必要なコレクションのみを名前で取得できるようにしたいと考えています。
express - Express+Mongooseログイン
ねえ、Express+Mongooseでログインシステムを作成したいと思います。
ユーザー名とパスワードを入力として読み取るダミーページをHTMLで作成し、バックボーンを使用してサーバー(エクスプレス)に送信します。サーバーは入力を受け取り、データベースで同じユーザー名とパスワード(マングースを使用)のエントリを検索します。 )。
ここまではすべて正常に機能しますが、私の質問です。ユーザーが接続されていることをどのように保証できますか?つまり、ユーザー名とパスワードが一致することを確認したので、ユーザーを別のページにリダイレクトできる可能性がありますが、たとえば、ユーザーがログインしている場合は「Hello username」、ユーザーがログインしている場合は「login」が必要です。ログに記録されません。PHPでは本当に簡単ですが、Expressでそれを行うにはどうすればよいですか?
ありがとう
マシアール
mongodb - 「番号」昇順のMongoDB順序
Mongoose と MongoDB で登録フォームを作成しようとしています。一意のキー UserId があり、新しいエントリを作成するたびに、データベース内の最大の UserId を取得して 1 ずつ増やしたいと考えています。で試してみましdb.user.find({}).sort({userId: 1});
たが、うまくいかないようです。ありがとう
マシアール
mongodb - ノード+マングース:最後に挿入されたIDを取得しますか?
_id
node.jsのMongoDBラッパーとしてmongooseを使用して、最後に挿入されたものを取得したいと思います。次のチュートリアルを見つけましたが、アプリがパブリックサーバーで実行されているため、ノードモジュールを変更できません。
「最後に挿入されたID」を取得する(ヒント-マングースをハックする必要があります)
他のアイデアはありますか?これが私がやりたいことです:
- 新しいユーザーを挿入します
- ユーザーの
_id
価値を得る - ユーザーのIDに基づいて新しいセッションを設定します
- /にリダイレクト
ありがとう!
asynchronous - Mongoose 仮想プロパティで非同期コードを操作するには?
さまざまなコレクション (埋め込みドキュメントではない) でドキュメントを関連付けようとしていますが、Mongooose には問題がありますが、ドキュメントに記載されているように、仮想プロパティを使用して関連付けられたドキュメントを遅延読み込みすることで回避しようとしています。マングースのウェブサイト。
問題は、仮想のゲッターが引数として関数を取り、仮想プロパティの戻り値を使用することです。これは、仮想がその値を計算するために非同期呼び出しを必要としない場合に最適ですが、他のドキュメントをロードするために非同期呼び出しを行う必要がある場合には機能しません。私が使用しているサンプルコードは次のとおりです。
非同期呼び出しが完了する前に関数が戻るため、これは機能しません。フロー制御ライブラリを使用してこれを機能させる方法はありますか、または匿名関数の代わりに getById 呼び出しを getter に渡すように最初の関数を変更できますか?