确保回送模型中唯一的字段值

如何确保环回模型中某个特定领域的唯一性。 像下面是模型Post,我有一个字段genericId在它,我希望它在数据库中是唯一的,并通过一个错误,重复键插入回环。

{ "name": "Post", "plural": "Post", "base": "PersistedModel", "properties": { "genericId": { "type": "string", "required":True }, "moderatedAt": { "type": "date" } }, "validations": [], "acls": [], "methods": [] } 

我已经尝试search文档,其他的例子,但没有成功。 我能想到的一个解决scheme是为create函数创buildremoteHook,并在插入之前validation此字段,但是寻找其他方法。

在你的common/models/post.js设置validation规则

 Post.validatesUniquenessOf('genericId'); 

不知道这是否是实现唯一性的更好方法,但您可以在这里find有关索引模型的文档。

只要在你想要的领域添加一个独特的索引,瞧!

对于你的模型,这将是:

 { ... "genericId": { "type": "string", "required": True, "index": {"unique": true} }, ... } 

然而,如果genericId字段是模型的实际ID,我build议你声明它,所以你可以使用findById方法,也避免创build一个重复的id字段,这将发生如果你不声明任何你的模型。

 { ... "genericId": { "type": "string", "id": true, // Ensure uniqueness and avoid another model id field "generated": true // Add this if you want Loopback to manage id content for you }, ... }