Безопасная запись с оболочки mongodb - PullRequest
3 голосов
/ 31 августа 2010

Как мне сделать «безопасную» запись, которая немедленно сбрасывает на диск из javascript?Я хотел бы иметь возможность сделать это как из оболочки, так и из хранимой процедуры JavaScript CRUD.Это просто вопрос:

db.foo.insert({stuff: "yes", meta: "physics"});
db.runCommand( "getlasterror" ) ;

Вики неясна по этому поводу.

1 Ответ

3 голосов
/ 31 августа 2010

Да, вы будете использовать команду Последняя ошибка , но вам нужно установить флаг fsync (и / или параметр репликации , в зависимости от вашего определения "safe"):

# force fsync
> db.runCommand({getlasterror:1,fsync:true})

# wait for replication to one other server (w = 2)
> db.runCommand( { getlasterror : 1 , w : 2 } )

Если вы выполняете более одной записи, вы можете запросить fsync или репликацию после последней.Это также сделает все предыдущие записи «безопасными» (поскольку они применяются по порядку).Вам не нужно оплачивать стоимость каждой записи (если вам не нужно, чтобы они были в безопасности индивидуально, а не только как набор).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...