А если у каждого пользователя свои посты? Все посты пихать в одну коллекцию или в один массив?
Почему же? Посты в одной коллекции - это вполне ок. Юзвери в другой коллекции это тоже ок.
Если нужно реализовать что-то более менее нормальное, приходится писать костыль на костыле.
Не пишите костыль на костыле, сначала спроектируйте БД так, что бы избежать этого.
Вставлять документ в коллекцию можно только в конец.
И в чем проблема (я вам по секрету: так происходит практически в каждой СУБД)? Какая вам разница, где оно будет вставляться? Делайте выборку с сортировкой.
К примеру, вставляю пост в коллекцию, и мне нужно взять посты по дате добавления.
RTFMнаписать костыль со skip, limit.
Какой нехороший человек вам такую дичь сказал? Если у вас записей 10кк, у вас просто оперативки не хватит делать подобные выборки без skip/limit.
Если бы можно было всё вставлять в начало коллекции, было бы намного проще.
Вы пытаетесь вырвать гланды через анус, причем другого человека.
Подскажите, пожалуйста, кто знает лучшую альтернативу.
Еще раз, вы придумали проблему и пытаетесь ее героически решить, но проблема заключается в том, что вы не правильно используете средства предлагаемые mongo, и другая БД вам ни как не поможет