Дублирование/"исчезновение" записей mongo

Всем доброго времени суток.В общем суть проекта заключается вот в чем: пользователь на сайте создает заявку на заказ, которая отправляется потом в, собственно, мой проект, если можно так выразиться. Записи о заказах отправляются в бд mongodb, которая подключается из облака. Так вот не так давно начались проблемы сначала с дублированием некоторых записей в бд (это происходило произвольно, я не нашел никакой “закономерности” этих дублирований), а затем просто перестали некоторые заявки появляться (или, как я понял - они появлялись, но потом удалялись).
По поводу дубликатов я пытался сделать вот так:

db.messages.aggregate([
	{"$group" : { "_id": "$number", "count": { "$sum": 1 } } },
	{"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } },
	{"$sort": {"count" : -1} },
	{"$project": {"number" : "$_id", "_id" : 0} }
 ])

number - номер заказа, я решил что по нему проще всего будет удалять, однако это не работает.
Подскажите пожалуйста что можно сделать с дубликатами и “пропажами” записей.
P.S. проект создавался не мной - по моему приходу на практику человек, который этим занимался, ушел в армию, поэтому меня закрепили следить за ним…ну и как видите проявились недоработки.

  1. Пиши логи всех действий, связанных с добавлением/удалением записи. Когда произойдет инцедент, читая логи ты сможешь понять лучше что происходило.
  2. Потеря записей с заказом - неприятная вещь. Я бы продублировал запись этой информации в другую таблицу. Так ты сможешь восстановить часть информации после очередного инцедента.
  3. Добавь в запись заказа timestamp (если ее еще нет) чтобы проще установить временные связи между событиями в логах и изменениями в базе.
  4. Поищи по коду возможные race-condition: все что связано с асинхронностью. Посмотри не начали ли параллельно выполнять несколько инстансов приложения с помощью node-cluster или подобных модулей. Возможно инстансы приложения получают одинаковые запросы на вход и параллельно обрабатывают их.