0

Usersコレクション内の各ドキュメントにロール ID とロール名を保存する必要があります。「xyz ロールを持つユーザーを取得する」または「名前に 'XYZ' を含むロールを持つユーザーを取得する」などと言うことができる必要があります。

それはMongoでも可能ですか?

現在、次のようなデータを保存しています。

{
    "_id": {
        "$id": "4fe30e3db92f5d2a5c000000"
    },
    "alias": "rogue_coder",
    "display_name": "Rogue Coder",
    "email": "rogue@example.com",
    "roles": {
        "4fe30e5fb92f5d6f53000000": "Super Administrator"
    }
}

これで、ユーザーが特定の役割を持っているかどうかを確認できますが、たとえば「スーパー」という単語を含む役割を持つすべてのユーザーを取得することはできません。これを行う方法についてのアイデアはありますか?

4

3 に答える 3

1

何をしようとしているかに基づいて、次のように、role_idとrole_nameを別々の配列に格納する必要がある場合があります。

{
    "_id": {
        "$id": "4fe30e3db92f5d2a5c000000"
    },
    "alias": "rogue_coder",
    "display_name": "Rogue Coder",
    "email": "rogue@example.com",
    "role_names": [
        "Super Administrator"
    ],
    "role_ids" : [
        "4fe30e5fb92f5d6f53000000"
    ]
}
于 2012-07-04T14:34:53.303 に答える
1

MongoDB は、キーの値を照合するための正規表現をサポートしています。

このMongoDB正規表現を見てください

于 2012-07-04T13:52:43.683 に答える
1

確かではありませんが、このように少し試すことができます

db.collection.find( { roles: { /super.*/i } );
于 2012-07-04T14:12:40.130 に答える