エクスペリエンスプロファイルから検索した個々のコンタクトのページ(コンタクトカードのページ)を表示しているときに、そのコンタクトのMongoDB上のデータを確認する方法をたまに聞かれるので、RoboMongoというツールを使用して確認する方法をご紹介します。
何よりもまずコンタクトのレコード(ドキュメント)をMongoDBのcontactsコレクション上で一意に識別するIDを知る必要があります。これは簡単で、コンタクトカードを表示しているときのアドレスバーにIDが付属しています。例えば次のようなアドレスになっていると思いますが、cidがコンタクトのID(GUID)になります。
/sitecore/client/Applications/ExperienceProfile/contact?cid=12345678-abcd-1234-5678-abcdef123456
あとは、RoboMongoで次のように検索すればコンタクトを表すドキュメントにアクセスできます。UUIDで指定しているのが、上記で取得したコンタクトのIDです。じっくりみるとわかるのですが、IDが微妙に変わっています。
db.getCollection('Contacts').find({_id:UUID("78563412cdab34125678abcdef123456")})
変換ルールとして、まず、'-'(ハイフン)で区切られる先頭3つの各グループで、2文字を1つの要素として、位置をクロスして入れ替えます。下図が位置を入れ替えるイメージです。
同様に 2グループ目の abcd は cdba,3グループ目の 1234は 3412 になります。残りのグループは文字の位置を入れ替えずそのままにします。
最後に、-(ハイフン)を削除すれば検索用のIDの出来上がりです。
さんのコメント: さんのコメント: