問題タブ [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.
node.js - マングースのバーチャル、「これ」は空のオブジェクトです
わかりました、私はマングースが初めてで、仮想プロパティの使用方法を理解しようとしています。これは私がテストしたサンプルコードです。
だから私はログが次のようなものになることを期待しています:
しかし、出力は
そして、仮想ゲッターの先頭で「this」をログに記録すると、{} が出力されます。私は何を間違っていますか?
node.js - mongooseとnodejsを使用してIDに関してモデル内のアイテムを削除する方法
これが私のスキーマです
ID に関して purchaseOrderSchema 内のアイテムを削除する方法。アイテムは itemSchema を使用して格納されます。
mongodb - ワイルドカード テキスト インデックスと継承されたスキーマ
discriminatorKey http://mongoosejs.com/docs/discriminators.htmlを使用して、1 つのルート スキーマと 4 つの継承スキーマがあります 。
このシナリオでは、ワイルド カード テキスト インデックスを使用できるかどうかはわかりません。目的は、継承された各スキーマのすべての文字列フィールドを個別にインデックス化することです。 https://docs.mongodb.org/manual/core/index-text/
EDIT
これを私のマングースルートスキーマに追加するmyRootSchema.index({ "_type": 1, "$**": "text" });
と、クエリを実行しようとするとこのエラーが発生します。継承されたスキーマでもこれを繰り返す必要がありますか?
クエリ:
mongoose - child id、parentSchema のスコープ内で一意か、またはすべての子で一意か?
ドキュメントで私の答えを見つける方法がわかりませんでした。
私はマングースを使用して2つのスキーマを持っています:
また、私にはChild
とParent
モデルがあります。
今、私が見た残りのベスト プラクティスでは、 1 つの特別な親の 1 つの特別な子が必要な場合は、次のURL を使用します。
現在、それぞれがマングースによってchild
独自に生産されています。しかし、それは別の親id
の子供に特有のものですか?
子供を得るために私はこれを行う必要があります:
つまりchildSchema
、埋め込まれており、参照ではないので:
- 私は子モデルを持っています。
- 私の子モデルは独立しておらず、親モデルに依存しています。しかし、IDも依存していますか?もちろん、代わり
findById
にこのコードで部分を 置き換えます。
私の質問は本当に、子供を取得するために、代わりにこのコードを使用できますか?
これは同じ結果になりますよね?または私は間違っています、そして子のIDはその親スコープでのみ一意ですか?
どんな助けでも大歓迎です。
node.js - マングースで「一意の」サブサブドキュメントのみを取得し、重複を削除するにはどうすればよいですか?
私はmongodbとmongooseが初めてで、mongooseのドキュメントを検索すればするほど、迷子になります。フィールドの値がJohn
である
があるuser
とします。Johnには 2 つの があります。name
role
- スーパーユーザー
- 管理者
このrole
s のそれぞれには、次のようなものがありますpermissions
。
- スーパーユーザー
- 追加質問
- 編集質問
- 削除質問
- 管理者
- 追加質問
- 見る答え
ご覧のとおり、それぞれに重複があります。次のように、重複のない配列でユーザーJohnrole
のアクセス許可を取得するにはどうすればよいですか(この例で繰り返されるのは です)。 addQuestion
['addQuestion', 'editQuestion', 'removeQuestion', 'viewAnswer']
これは私のスキーマです:
permissions
ご覧のとおり、配列に権限名がありません。参照がありますObjectId
。
私userId
はURLから来ただけです。それで:
使用する必要がありますdistinct
か? 最初に ingdistinct
なしで使用できますか? populate
それとも必須ですか?または、コールバックに渡されdistinct
たアイテムを使用する代わりに、(メソッドを使用して)パラメーターを使用してすべてのロールを取得し、すべてのロールに対してアクセス許可を取得してから、配列から重複を削除する必要がありますか?user
????
user
find
permissionsArr
更新: これは、mongoose を使用して作成した残りの API の結果であり、ユーザーの役割を取得します (GET http://localhost/api/users/:userId/roles ):
結果:
今私が必要とするのはGET
http://localhost/api/users/:userId/permissionspermissions
であり、それによってユーザーが持っているのを取得しroles
ますが、重複は削除されています.(直接user
持つべきではありません.)permissions
お時間を割いていただき、ご協力いただきありがとうございます。
mongodb - Mongoose の辞書でサブドキュメントを検証する
オブジェクトで構成され
userTasteSchema
た辞書フィールドを持つ があります。を保存または更新するときに、辞書の要素が有効なオブジェクトであることを検証したいと考えています。出来ますか?ありがとうございましたfavorites
favoriteSchema
userTaste
favorite
node.js - マングースが不要な_idを作成しないようにする方法は?
私は次のようなものを取得します
どうすればマングースが_id
内部の投稿を作成しないようにできますか?
node.js - スキーマのデフォルトでカスタム関数を使用しますか?
次のようなスキーマがあります。
null
ランダムに取得できませんが、一意のフィールドに対してのみ取得できます
デフォルトでカスタム関数を使用することはできますか?