Каков наилучший способ проверки данных, вставленных или обновленных в MongoDB? Должен ли он написать какой-то серверный код Javascript, который выполняет проверку?Каков наилучший способ проверки данных в монго?
ответ
Я думаю, что для вашего приложения было бы нормально обращаться с такими вещами. Если данные некорректны, не позволяйте им добавлять данные в хранилище данных до тех пор, пока пользователь не исправит какую-либо ошибку, которую вы обнаружили.
MongoDB не имеет ограничений или триггеров, поэтому приложение должно проверять данные.
Вы также можете написать скрипты Javascript, которые проверяются один раз в день или более, если имеются недопустимые данные. Вы можете использовать это, чтобы проверить качество бизнес-логики приложения.
Я только начал использовать MongoDB и PHP вместе в приложении на основе Zend Framework.
Я создал 1 объект для каждой коллекции MongoDB (например, User.php для коллекции пользователя). Каждый объект знает, к какой коллекции он относится, и какие поля необходимы. Он также знает, какие фильтры (Zend_Filter_Input) и валидаторы (Zend_Validate) должны применяться к каждому полю. Перед выполнением MongoDB insert() или save() я запускаю $ object-> isValid(), который выполняет все проверки. Если все они пройдут, то isValid() вернет true, и я продолжу выполнение функции insert() или save(), в противном случае я покажу ошибки.
Начиная с 2.4, MongoDB обеспечивает базовую проверку объекта BSON для mongod и mongorestore при записи в файлы данных MongoDB. Это не позволяет любому клиенту вставлять неверный или некорректный BSON в базу данных MongoDB. источник: http://docs.mongodb.org/manual/release-notes/2.4/
Начиная с MongoDB 3,2 они добавили document validation (slides).
Вы можете указать правила проверки для каждой коллекции, используя validator вариант с использованием практически всех операторов Монго запросов (кроме $geoNear
, $near
, $nearSphere
, $text
и $where
).
Чтобы создать новую коллекцию с валидатором, используйте:
db.createCollection("your_coll", {
validator: { `your validation query` }
})
Чтобы добавить валидатор к существующей коллекции, вы можете добавить валидатор:
db.createCollection("your_coll", {
validator: { `your validation query` }
})
Validation работать только при вставке/обновление, поэтому, когда вы создаете валидатор в своей старой коллекции, предыдущие данные не будут проверяться (вы можете написать проверку уровня приложения для предыдущих данных). Вы также можете указать validationLevel и validationAction, чтобы сообщить, что произойдет, если документ не пройдет проверку.
Если вы попытаетесь вставить/обновить документ чем-то, что не дает подтверждения, (и не указали какого-либо странного validationLevel/action), то вы получите сообщение об ошибке writeResult
(к сожалению, ошибка не говорит вам, что не удалось и вы получите только по умолчанию validation failed
):
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
- 1. Каков наилучший способ проверки данных в JTextField?
- 2. Каков наилучший способ проверки строки?
- 3. Каков наилучший способ проверки возраста?
- 4. Каков наилучший способ проверки XMLObject
- 5. Каков наилучший способ проверки ассоциации в Rails?
- 6. Каков наилучший способ проверки IPv6 в PHP?
- 7. Каков наилучший способ проверки соответствия в r
- 8. Каков наилучший способ проверки хранимой процедуры?
- 9. Каков наилучший способ проверки сложной формы Flex?
- 10. Каков наилучший способ проверки формы в WPF (с привязкой данных)?
- 11. Каков наилучший способ проверки даты и времени
- 12. Каков наилучший способ проверки наличия необходимых компонентов.
- 13. Каков наилучший способ проверки наличия внешних приложений?
- 14. Каков наилучший способ проверки параметров, полученных функцией
- 15. Каков наилучший способ проверки подлинности/сертификата?
- 16. Каков наилучший способ создания изменчивой карты в монго?
- 17. Каков наилучший способ проверки ввода (Skeleton + Vue.js)?
- 18. Каков наилучший способ проверки работающего рубинового процесса
- 19. Каков наилучший способ проверки поля ввода?
- 20. Каков наилучший способ передачи данных в Runnable?
- 21. Каков наилучший способ сохранения данных в Android?
- 22. Каков наилучший способ переноса данных в django
- 23. Каков наилучший способ отправки данных в AsyncTasks
- 24. Каков наилучший способ шифрования данных в приложении
- 25. Каков наилучший способ вставки данных в mongodb
- 26. Каков наилучший способ обработки данных в GAE?
- 27. Каков наилучший способ многопоточности?
- 28. Каков наилучший способ проверки существующей записи в Entity Framework?
- 29. Каков наилучший способ проверки формата строкового объекта JSON в JAVA
- 30. Каков наилучший способ преобразования объектов данных в новые схемы?
[Монго 3,2] (http://stackoverflow.com/a/33602507/1090562) будет иметь подтверждение. –