2015-03-24 6 views
0

Мне пришлось использовать это недавно, чтобы получить правильное сохранение манго, но он не может найти нигде (даже в документации по монго), что он делает. Может ли кто-нибудь объяснить это мне или указать мне в правильном направлении?Что делает save (flush: true) в MongoDb?

ответ

1

Когда вы позвоните save(flush: true), все данные вашей сессии будут сохранены немедленно в базу данных.

Если вы не используете опцию flush:true, данные будут записаны только для сохранения в следующем флеше, и ваши данные будут сохраняться в базе данных при очистке сеанса, но это не гарантировано для немедленного (во время вашего вызова сохранения).

Время, необходимое для очистки сеанса, автоматически определяется для оптимизации производительности.

+0

Спасибо за ответ. Не имея проблем с пониманием последнего предложения, «время для очистки сеанса автоматически определяется для оптимизации производительности», что это значит? – reectrix

+1

@flyingflamingo Это означает, что база данных выбирает время, которое нужно очистить, поскольку оно лучше всего видит, и вы не контролируете его. Если в течение коротких промежутков времени будет больше вызовов для сохранения, он буферизует эти данные, и в то время, как считает его алгоритм, эти записи сохраняются на диске. Без 'flush: true' mongodb ждет критической массы изменений до тех пор, пока на самом деле не будет делать записи. – halex

Смежные вопросы