簡體   English   中英

令人困惑的新模型`unique=True`行為

[英]Confusing neomodels `unique=True` behaviour

neomodel.StructuredNodeunique屬性的行為讓我有點困惑。

任何人都可以指出我對此進行解釋的文檔嗎? 或者讓我知道我的誤解?

該模型:

class Person(neomodel.StructuredNode):

    uuid = neomodel.UniqueIdProperty()

    legacy_external_id = neomodel.StringProperty(unique=True, required=False)

並非所有的Person實例都有這個“legacy_external_id”,但是它存在的地方必須是唯一的。

上面的代碼在我看來適合該描述。

然而在實踐中,輸出是:

In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': '7d7e5c2224d647e9a87d23b9cb1c4153', 'legacy_external_id': 'u12345'} >

In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': 'ed7690f8f28b4cf288c35d2130a2e6e4', 'legacy_external_id': 'u12345'} >

In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': '7393a4b5022d40d8aca002cecac9b124', 'legacy_external_id': 'u12345'} >

只是快樂地增殖節點(沒有錯誤或警告)不是我預期的行為。

我可以編寫自己的驗證,但在我深入研究之前,我有興趣了解我的誤解。

任何建議表示贊賞,謝謝!

首先,它應該是unique_index=True ,而不是unique=True

此外,當前版本的 Neomodel 不支持unique_index=Truerequired=False 如果一個屬性被設置為唯一的,那么它也會被自動視為需要(大概是因為否則,你可能有兩個或多個具有 null 屬性的節點,這不會是唯一的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM