問題タブ [mongoose-plugins]
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.
javascript - モデルをマングースから削除するにはどうすればよいですか?
ドキュメントやドキュメントを削除するという意味ではありません。モデルを完全に削除して、マングースが認識しないようにすることを意味します。モデルを宣言した後、マングースにそのモデルを忘れさせて再作成する方法がわかりません。
現在、上記は例外をスローします。
OverwriteModelError: 一度コンパイルすると、'Book' モデルを上書きできません。
このようなことができるようになりたい...
...そしてエラーは発生しません。何か案は?
node.js - Error: text search not enabled:- in mongodb
I get the following error :-
I am running the folliowing function which is essentially a mongoose-mongodb operation.
I am trying to implement the mongoose-text-search plugin
javascript - パスポートマングース オブジェクト番号「認証」メソッドはありませんが、メソッドを見ることができます
私は意味をなさない問題に遭遇しており、誰かが助けてくれることを望んでいます。
私はいくつかのマングース プラグインを使用しており、現在はパスポートも統合しようとしています。以下に示すように、passport-local-mongoose プラグインを追加しましたが、メソッドが存在しないというエラーが発生します。スキーマをコンソールにログアウトすると、メソッドが一覧表示されるので、メソッドが存在しない理由がわかりません。
コードサンプル:
コンソール ログの抜粋は次のとおりです。
しかし、次のエラーが発生します。
メソッドが利用可能であることがわかりますが、なぜアクセスできないのでしょうか。基本的なことが抜けている場合は申し訳ありませんが、これらのことのいくつかはまだ学んでいます。ご協力ありがとうございます。
node.js - mongoose および mongoose-version を使用してエントリを更新する場合の新しいバージョン
mongoose を使用して、mongo データベース内のいくつかのドキュメントのすべてのリビジョンを追跡しようとしています。このため、プラグイン mongoose-version を使用することにしました。
新しいドキュメントを作成してデータベースに追加すると、さまざまなバージョンを格納するコレクションにバージョンが保持されていることがわかります。ただし、ドキュメントを新しいドキュメントで更新すると、ドキュメントを格納するコレクション (最新バージョン) に加えられた変更が表示されますが、バージョン管理されたデータベースに格納された新しいバージョンは表示されません。なぜこれが起こっているのか、何か手がかりはありますか?
これは私のスキーマです:
これは私がユーザーを作成する方法です:
そして、これは私がユーザーの詳細を更新する方法です (基本的に変更できるのは名前だけですが、私が学んでいるデモンストレーション用です)。
私はmongoとmongooseも使用する初心者でもあるので、どんな助けやヒントも大歓迎です。
node.js - Mongoose 検索で不可解なエラーが発生する
Mongoose-Text-Search プラグイン ( https://github.com/aheckmann/mongoose-text-search ) を使用して mongodb データベースを検索していますが、見たことのない非常に紛らわしいエラー メッセージが表示されます。前。
誰かがこれが何を意味するのか説明できますか? 私はテキスト検索プラグインを正しく使用していると思いますが、ここで何が問題なのかを理解することはできません。
ありがとう!
node.js - Passport-Local-Mongoose – レコードのユーザー名を更新すると、ログアウトされてしまうのはなぜですか?
Passport と Passport-Local-Mongoose プラグインで MEAN スタックを使用しています。ただし、ユーザー レコードのユーザー名を更新するたびに、現在のセッションからログアウトされます。Passport-Local-Mongoose でユーザー名を更新する正しい方法は何ですか?
mongodb - Mongo: フィールドの $exists のインデックス
私は次のマングーススキーマを持っています:
一部の dataObject では、eventCount が定義され、正の数になります。他の dataObject では、eventCount は未定義です。このようなクエリができるだけ高速になるようにインデックスを設計したいと思います。
これを行う最善の方法は何ですか?
これが私が考えることができる最良の解決策ですが、誰かがより良い解決策を持っているかどうか知りたいです:
isEventCount ブール変数を dataSchema に追加します。次のロジックを使用して、オブジェクトを db に保存する前に isEventCount が計算されるように、mongoose ミドルウェアをセットアップします。
次に、このようなインデックスを作成します
そして、このようにクエリを実行します
このアプローチにはいくつかの欠点があります。すなわち:
- 冗長な情報をデータベースに保存しています。
- これを実現するには、追加のミドルウェア コードを作成する必要があります。
- データベース内の既存のエントリを変更する必要があります。
これに役立つより良い解決策またはライブラリを知っている人はいますか?
javascript - Mongoose モデルで Express.js リクエスト コンテキストにアクセスする
Express.jsとMongooseを使用して同僚と REST API を開発しています。
一部の MongooseではModel
methods
、現在リクエストを実行している認証済みユーザーなど、追加のコンテキスト情報ソースとしてオブジェクトstatics
が必要です。Express.js
Request
現在行っていることは、の関数のプロトタイピングによってのコンテキストに呼び出さcontext
れるカスタム プロパティをアタッチすることです。Model
this
Mongoose
Model
問題は、厄介なバグに遭遇したことで、インスタンスでModel.methods
呼び出された が正常に機能することに気付きました。Model
として実装されている「クラス」でModel.statics
呼び出される の場合、スコープはアプリ全体で共有されます。つまり、同時リクエストがある場合、リクエスト処理で非同期動作がある場合、それらは互いの値をオーバーライドします。.Model
singleton
this.context
今私の質問は次のとおりです。
- and functionsでコンテキストを保持
Express.js
およびMongoose
アクセスするためのベストプラクティスは何ですか?request
Model.statics
Model.methods
もちろん、封じ込めをシミュレートするためのいくつかの可能なハックがあります:
Function.bind()
Model
リクエストコンテキストを追加するすべての関数。-> これは、
Model.statics.a()
内部的に を呼び出す場合Model.statics.b()
、関数に .b()
がないことを意味しますthis.context
。with() {}
オブジェクトでステートメントを使用し、そのスコープ内のrequest
すべての関数を呼び出します。Model
->これはかなり汚れていて遅いでしょう。
vm
標準の Node.js モジュールを使用して、個別のスコープを持つコンテナーを作成します。→(2)と同様、パフォーマンスが大幅に低下します。
何か案は ?前もって感謝します !
node.js - Mongoose: スキーマの静的メソッドでプラグインを使用する
私はマングースランダムプラグインを使用しています。
私のスキーマ定義では、私は呼び出します
その後、プラグインを使用するカスタム静的メソッドがあります。
そして、私はエラーが発生します
私がやろうとしていることを達成する方法はありますか、それともある種のリポジトリを実装する必要がありますか?
編集:
ベンの答えはうまくいきました。スキーマではなくモデルで findRandom を使用する必要がありました。
私の場合の精度:最初に静的関数を宣言する必要があります
次に、スキーマを登録します
そうしないと、「Model .... has no method 'someMethod'」というエラーが発生
します。静的関数のゲーム変数は、スクリプトの後半でのみ定義されますが、イベントとして認識されます。
=>おまけの質問: なぜそれが機能するのか誰か知っていますか?