Sails 0.11 & Sails-Mongo 0.11.2 唯一约束不起作用

Sails 0.11 & Sails-Mongo 0.11.2 unique constraint not working

我正在使用 sails 0.11 和 sails-mongo 0.11.2 适配器。

我有一个带有昵称的用户模型,我希望昵称在每个用户中都是唯一的。我将属性指定为唯一的,如下所示:

nickname: {
   type: 'string',
   unique: true
}

它不起作用,我可以毫无问题地添加两个昵称相同的用户。关于如何解决此问题的任何线索?

您是否尝试过将架构标志指定为 true?

http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html

根据设计,sails 不会在生产环境中进行迁移,这就是 mongo 未生成索引的原因。

一种解决方案是在需要时手动将索引添加到 mongo 集合。

另一种解决方案是从 sails 迁移本地 mongo 数据库并将其复制到生产数据库中,以便它具有索引。

好的,我一直在努力解决这个确切的问题并解决了它。在 config/locales/models.js 中将 migrate : 'safe' 更改为 migrate : 'alter'。提起你的申请。如果您的唯一字段中有任何重复项,它将在提升时出错,您将不得不删除重复项。清理所有重复项后提升。 Unique 现在应该可以工作了。您现在可以改回 migrate : 'safe' 并且应该继续执行 unique。