MongoDB: получение ObjectId последнего вставленного документа с несколькими одновременными авторами? - PullRequest
2 голосов
/ 11 октября 2011

Рассмотрим следующий сценарий с MongoDB:

Три автора (A, B, C) вставляют документ в одну коллекцию.

Сначала вставляется A, затем B, затем C.

Как мы можем гарантировать, что A получит ObjectId документа, который он вставил, а не документ B или документ C? Нужно ли сериализовать записи (т. Е. Разрешать B писать только после того, как A вставляет и получает ObjectId), или MongoDB предлагает некоторые собственные функции для этого сценария?

Спасибо!

Мы на Rails.

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Вы можете сгенерировать значение _id в своих клиентских приложениях (средствах записи) перед вставкой документа. Таким образом, вам не нужно полагаться на сервер, генерирующий ObjectId для получения правильного значения. Большинство языковых драйверов MongoDB сделают это автоматически, если вы оставите _id пустым.

0 голосов
/ 11 октября 2011

Нормальный шаблон здесь для драйвера, чтобы выделить ObjectId, и тогда вы знаете, что это за вставка, еще до того, как сервер ее получит.

...