【问题标题】:How to do Collection Field Unique in Meteor JS?如何在 Meteor JS 中做唯一的集合字段?
【发布时间】:2014-11-04 15:16:29
【问题描述】:

我需要了解meteor js中唯一的集合字段。我创建了一个集合,如下所示:

  List= new Meteor.Collection("list");

上述集合包含 5 个字段,它们在下面列出:

 1. User Name

 2. Email

 3. Name

 4. Qualification

 5. Status

在上述字段中,我需要做唯一的是用户名和电子邮件。因此,对于集合中的唯一字段是否有任何程序,或者每次都手动检查何时将数据插入集合。请建议我做什么对于上面的这个问题怎么办?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    在服务器上创建唯一索引。这样,Mongo 会为您检查:

    List._ensureIndex({username: 1}, {unique: 1});
    List._ensureIndex({email: 1}, {unique: 1});
    

    看看 Meteor 是如何为Meteor.users 做的:https://github.com/meteor/meteor/blob/devel/packages/accounts-base/accounts_server.js#L1136

    【讨论】:

    • 什么是用户集合中的稀疏。你能解释一下用户集合中稀疏的使用吗?。@Andrew Mao。
    • Mongo spark indexes 表示如果索引字段不存在,文档将不会被索引。请阅读the docs 了解完整的实施细节和影响。
    • 上面的工作正常,但是如何知道这是用户名已经存在错误,或者在向集合中插入字段时使用上述过程可能出现错误。@Andrew Mao
    • @Venkat。如果您尝试将用户名已经存在的文档插入到集合中,您将收到错误消息。所以只需try/catch
    • 不推荐使用 ensureIndex 吗?
    【解决方案2】:

    您可以尝试使用 SimpleSchema 的 Collection2:

    !:https://github.com/aldeed/meteor-collection2

    2:https://github.com/aldeed/meteor-simple-schema

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多