Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor mongo插入唯一文档_Javascript_Mongodb_Meteor - Fatal编程技术网

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存在,则
更新
,否则
插入