javascript – 如何在meteor应用程序中添加两列的唯一ID到mongodb?

我想在一个流星应用程序的基础mongodb上创建一个两列唯一索引,有麻烦。我在meteor文档中找不到任何东西。我已经尝试从chrome控制台。我试过从术语,甚至尝试指向mongod在/ db / dir里面的.meteor。我努力了

Collection.ensureIndex({first_id:1,another_id:1},{unique:true});变化。

我想要能够防止在meteor应用程序mongo集合上的重复条目。

想知道有没有人想过这个?

我回答了我自己的问题,什么是noob。

我想到了。

>启动流星服务器
>打开第二个终端并键入meteor mongo

然后创建索引…例如我做了这些thumbsup和thumbsdown类型系统的记录。

db.thumbsup.ensureIndex({item_id: 1, user_id: 1}, {unique: true})
db.thumbsdown.ensureIndex({item_id: 1, user_id: 1}, {unique: true})

现在,只需要弄清楚一个引导安装设置,推送到prod而不是手动创建这些。

根据docs“Minimongo目前没有指数,这会很快来。查看集合上可用的方法,没有ensureIndex。

你可以为mongo shell运行meteor mongo,并在服务器端启用索引,但是Collection对象仍然不知道它们。因此,应用程序将允许您向集合缓存添加多个实例,而在服务器端,额外的插入将无提示失败(错误被写入输出)。当您执行硬页刷新时,应用程序将与服务器重新同步

所以你最好的赌注现在可能是做一些像:

var count = MyCollection.find({first_id: 'foo', another_id: 'bar'}).count()
if (count === 0)
    MyCollection.insert({first_id: 'foo', another_id: 'bar'});

这显然不理想,但工作确定。您还可以在服务器上的mongodb中启用索引,因此即使在竞争条件的情况下,您实际上也不会获得重复记录。

http://stackoverflow.com/questions/10167604/how-can-i-add-a-two-column-unique-id-to-the-mongodb-in-a-meteor-app

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 如何在meteor应用程序中添加两列的唯一ID到mongodb?