我们在 Mongo 设置中存储了数百万个订阅者记录。我的任务是在记录上放置一个前端,以便对其进行搜索。我的搜索查询看起来很棒,但我需要能够对它们进行排序并使其可分页。我们的 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。有没有人有什么建议?