Javascript Meteor mongo插入唯一文档
我有一个简单的标签收集在流星。目前,为了确保用户无法创建重复的标记文档,我执行以下操作:Javascript Meteor mongo插入唯一文档,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我有一个简单的标签收集在流星。目前,为了确保用户无法创建重复的标记文档,我执行以下操作: var existingTag = Tags.findOne({name: "userInput"}) 如果existingTag未定义,那么我可以继续进行插入 使用meteor mongodb语法有更好/正确的方法吗?似乎找不到关于此的任何文档 谢谢。一个好的解决方案是在唯一字段创建Mongo索引。这样,您将在Mongo级别进行唯一性验证,并提高该字段上搜索的性能 Meteor目前不支持直接创建索引,所
var existingTag = Tags.findOne({name: "userInput"})
如果existingTag未定义,那么我可以继续进行插入
使用meteor mongodb语法有更好/正确的方法吗?似乎找不到关于此的任何文档
谢谢。一个好的解决方案是在唯一字段创建Mongo索引。这样,您将在Mongo级别进行唯一性验证,并提高该字段上搜索的性能 Meteor目前不支持直接创建索引,所以您需要手动登录到数据库并从中添加索引。此操作的命令是:
db.tags.ensureIndex({name: 1}, {unique: true})
您可以找到更多信息。实际上,我认为您可以使用
标记添加meteor的索引。_ensureIndex('name',{unique:true})
但该接口显然会发生更改。我一直都是从mongo直接完成的。谢谢,我希望在Rails中找到类似于“按名称查找”或“按名称创建”的东西,但这会起作用:-)。Meteor确实包含类似于“按名称查找”或“按名称创建”的东西。它被称为Upsert
-@Ayrtonsena作为Upsert
的东西,是的,但是。。那是对客户的拒绝。在客户端上,您可以创建一个varFind=myCollection.findOne
。。。如果varFind存在,则更新
,否则插入