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。
我正在使用 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。