問題タブ [mongoose-schema]

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 に答える
2472 参照

node.js - マングースのバーチャル、「これ」は空のオブジェクトです

わかりました、私はマングースが初めてで、仮想プロパティの使用方法を理解しようとしています。これは私がテストしたサンプルコードです。

だから私はログが次のようなものになることを期待しています:

しかし、出力は

そして、仮想ゲッターの先頭で「this」をログに記録すると、{} が出力されます。私は何を間違っていますか?

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

node.js - mongooseとnodejsを使用してIDに関してモデル内のアイテムを削除する方法

これが私のスキーマです

ID に関して purchaseOrderSchema 内のアイテムを削除する方法。アイテムは itemSchema を使用して格納されます。

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

mongodb - ワイルドカード テキスト インデックスと継承されたスキーマ

discriminatorKey http://mongoosejs.com/docs/discriminators.htmlを使用して、1 つのルート スキーマと 4 つの継承スキーマがあります 。

このシナリオでは、ワイルド カード テキスト インデックスを使用できるかどうかはわかりません。目的は、継承された各スキーマのすべての文字列フィールドを個別にインデックス化することです。 https://docs.mongodb.org/manual/core/index-text/

EDIT これを私のマングースルートスキーマに追加するmyRootSchema.index({ "_type": 1, "$**": "text" });と、クエリを実行しようとするとこのエラーが発生します。継承されたスキーマでもこれを繰り返す必要がありますか?

クエリ:

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

mongoose - child id、parentSchema のスコープ内で一意か、またはすべての子で一意か?

ドキュメントで私の答えを見つける方法がわかりませんでした。
私はマングースを使用して2つのスキーマを持っています:

また、私にはChildParentモデルがあります。
今、私が見た残りのベスト プラクティスでは、 1 つの特別な親の 1 つの特別な子が必要な場合は、次のURL を使用します。

現在、それぞれがマングースによってchild独自に生産されています。しかし、それは別のidの子供に特有のものですか?

子供を得るために私はこれを行う必要があります:

つまりchildSchema埋め込まれており、参照ではないので:

  • 私は子モデルを持っています。
  • 私の子モデルは独立しておらず、親モデルに依存しています。しかし、IDも依存していますか?もちろん、代わりfindByIdにこのコードで部分を 置き換えます。

私の質問は本当に、子供を取得するために、代わりにこのコードを使用できますか?

これは同じ結果になりますよね?または私は間違っています、そして子のIDはその親スコープでのみ一意ですか?

どんな助けでも大歓迎です。

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

node.js - マングースで「一意の」サブサブドキュメントのみを取得し、重複を削除するにはどうすればよいですか?

私はmongodbとmongooseが初めてで、mongooseのドキュメントを検索すればするほど、迷子になります。フィールドの値がJohn
である があるuserとします。Johnには 2 つの があります。namerole

  • スーパーユーザー
  • 管理者

このroles のそれぞれには、次のようなものがありますpermissions

  • スーパーユーザー
    • 追加質問
    • 編集質問
    • 削除質問
  • 管理者
    • 追加質問
    • 見る答え

ご覧のとおり、それぞれに重複があります。次のように、重複のない配列でユーザーJohnroleのアクセス許可を取得するにはどうすればよいですか(この例で繰り返されるのは です)。 addQuestion

['addQuestion', 'editQuestion', 'removeQuestion', 'viewAnswer']

これは私のスキーマです:

permissionsご覧のとおり、配列に権限名がありません。参照がありますObjectId

userIdはURLから来ただけです。それで:

使用する必要がありますdistinctか? 最初に ingdistinctなしで使用できますか? populateそれとも必須ですか?または、コールバックに渡されdistinctたアイテムを使用する代わりに、(メソッドを使用して)パラメーターを使用してすべてのロールを取得し、すべてのロールに対してアクセス許可を取得してから、配列から重複を削除する必要がありますか?user????userfindpermissionsArr

更新: これは、mongoose を使用して作成した残りの API の結果であり、ユーザーの役割を取得します (GET http://localhost/api/users/:userId/roles ):

結果:

今私が必要とするのはGET http://localhost/api/users/:userId/permissionspermissionsであり、それによってユーザーが持っているのを取得しrolesますが、重複は削除されています.(直接user持つべきではありません.)permissions

お時間を割いていただき、ご協力いただきありがとうございます。

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

mongodb - Mongoose の辞書でサブドキュメントを検証する

オブジェクトで構成され userTasteSchemaた辞書フィールドを持つ があります。を保存または更新するときに、辞書の要素が有効なオブジェクトであることを検証したいと考えています。出来ますか?ありがとうございましたfavoritesfavoriteSchemauserTastefavorite

0 投票する
0 に答える
47 参照

node.js - マングースが不要な_idを作成しないようにする方法は?

私は次のようなものを取得します

どうすればマングースが_id内部の投稿を作成しないようにできますか?

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

node.js - スキーマのデフォルトでカスタム関数を使用しますか?

次のようなスキーマがあります。

nullランダムに取得できませんが、一意のフィールドに対してのみ取得できます

デフォルトでカスタム関数を使用することはできますか?