Я создаю довольно причудливый "трендовый" алгоритм сообщений с использованием MongoDB. Поскольку алгоритм потребляет довольно много времени, я выполняю свой алгоритм в задаче cron, а затем кешу отсортированного массива сообщений ids. Как это (PHP vardump):
"trending" => array("548ac5ce05ea675e468b4966", "5469c6d5039069a5030041a7", ...)
Дело в том, что я не могу найти способ получить их в этом порядке с помощью MongoDB. Используя MySQL, это будет сделано, просто сделав:
SELECT * FROM posts
ORDER BY FIELD(_id, '548ac5ce05ea675e468b4966', '5469c6d5039069a5030041a7',...)
То, что я пробовал до сих пор, это то, что можно найти здесь, так что теперь я могу получить отсортированный список с весом, но не постов. Ответ такой:
{
"result" : [
{
"_id" : ObjectId("548ac5ce05ea675e468b4966"),
"weight" : 1
},
{
"_id" : ObjectId("5469c6d5039069a5030041a7"),
"weight" : 2
}
],
"ok" : 1
}
Кто-нибудь достиг этого или даже знает, с чего начать?
Спасибо!