Mongo セットアップ内に何百万もの Subscriber レコードを保存しています。私は、記録にフロント エンドを配置して、それらを検索できるようにする任務を負っています。私の検索クエリは見栄えがしますが、それらを並べ替えてページングできるようにする必要があります。私たちの Mongo 設計は、チャネル情報が配列に入れ子になっているようなものです。メールがアドレスを持つ唯一のチャネルであるため、「Channels.Address」でソートしようとしましたが、そのようには機能しません。昇順か降順かに関係なく、同じ順序で結果が返されます。
私たちのコレクションは次のようになります。
加入者:
{
"_id" : "",
"FirstName" : "Tester",
"LastName" : "Tester",
"Channels" : [{
"_t" : "EmailChannel",
"IsEnabled" : true,
"Type" : 1,
"Address" : "test@test.com"
}, {
"_t" : "SmsChannel",
"IsEnabled" : true,
"Type" : 2,
"Number" : "88888888"
}, {
"_t" : "FaxChannel",
"IsEnabled" : false,
"Type" : 4,
"Number" : null
}]
}
私の現在の考えは、必要なものを返す MapReduce を作成し、これの代わりにそれを検索することです。しかし、それを行うのはスペースの無駄のようです。使用頻度の高いテーブルなので、eval は使えません。誰か提案はありますか?