現在、コレクションのアクセス権セットをマップとして管理しています。 権限の各セットは、ユーザーのIDをキーとして保管されます。何らかの理由で、キーは現在、BSONObjectIDの文字列化されたバージョンです。Map [key、value]のkey-nameにMongoDbインデックスを作成するには?
私はキーのインデックスを維持したいので、関連する権限のセットだけを検索し、特定のユーザーの権限が存在するドキュメントを見つけることができます。
編集:例では、追加:
例:
{ "_id":{ "$のOID": "XXXXXX"}、
"irrelevantData": "文書1のデータ..."、
"権限 ":{
"KEY1":{ "perm1":真、 "perm2:偽}、
"KEY3":{" perm1" :真、 "perm2:偽}
}
{" _id" :{"$ oid": "yyyyyy"}、
"irrelevantData": "Documen t2データ... "
" "key1":{"perm1":false、 "perm2:true}、
" key2 ":{" perm1 ":true、" perm2 "false }
}
上記の例では、インデックスに "key2"が存在するドキュメントのみを選択できるようにしたいと考えています。
モデルは、このようなものです:
case class relevantCollection( _id: BSONObjectID, irrelevantData: String, permissions: Option[Map[String, Map[String, Boolean]]])
どのように私の代わりに値のキーにインデックスを作成するのですか? このキーが文字列かBSONObjectIDかについて、パフォーマンス上の問題はありますか?
ReactiveMongoでそれを行う方法を尋ねる前に、私は[MongoDBのインデックスドキュメント](https://docs.mongodb.com/manual/indexes/)をチェックし、MongoShellそれをしようとするだろう。 – cchantep
@cchantep:[MongoDB index doc](https://docs.mongodb.com/manual/indexes/)を確認しましたが、キーのインデックス方法については何も見つかりませんでした。たぶん私はそれを間違って読んでいる? 私がMongoShellのための実用的なソリューションをあなたが提案したところで見つけることができれば、私は満足しています:) – RastacraZ
MongoDBのドキュメントで方法が見つからない場合は、クライアントライブラリを使用する方法はありません。 – cchantep