0

我试图确保 MongoAlchemy 支持的模型中的名称唯一性,但不确定如何去做。

我的第一次尝试涉及编写一个包装验证器,它检查具有相同名称的现有数据库条目name并检查它们(以确保有 0 或 1 个具有相同名称的条目),但这失败了,因为验证器只接收带有name,而不是整个对象(所以比较mongo_ids 是不可能的)。

确保单个类的对象都具有唯一names 的最佳方法是什么?

4

1 回答 1

2

您应该使用唯一索引。

http://www.mongoalchemy.org/api/schema/document.html#mongoalchemy.document.Index

>>> class Person(Document):
...     name = StringField()
...     name_index = Index().ascending('name').unique()

数据库将为您强制执行约束。它只是包装了 mongo 在这里已经拥有的代码:

http://docs.mongodb.org/manual/tutorial/create-a-unique-index/

于 2014-08-26T14:06:35.090 回答