【问题标题】:Validating for uniqueness in MongoAlchemy?验证 MongoAlchemy 的唯一性?
【发布时间】:2014-08-25 14:59:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: python flask mongoalchemy


    【解决方案1】:

    您应该使用唯一索引。

    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/

    【讨论】:

    • 你是最棒的,杰夫。不过,您仍然没有接受我的拉取请求...:p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2012-10-10
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多