upsert 命令多久会在 Meteor 中实现?
同时,同时做同样事情的最佳方法是什么?
我现在正在做的事情是这样的:
if typeof ( item = Items.findOne({title:'Foo'}) ) == 'undefined'
item = Items.insert({title:'Foo'})
else
Items.update(item._id, {$set: {title:'Foo'}})
# do something with item
最佳答案
How soon will the upsert command be implemented in Meteor?
更新:@Thomas4019指出现在支持 upsert
:
v0.6.6
“添加 upsert 支持。Collection.update 现在支持 {upsert: true} 选项。此外,添加一个 Collection.upsert 方法,该方法返回新插入的对象 ID(如果适用)。”
来源:History.md
使用文档:http://docs.meteor.com/#upsert
--原始答案如下--
Trello Meteor 路线图上有一张卡片,您可以对其进行投票以表明它对您的重要性:https://trello.com/c/C91INHmj
它目前在“稍后”列表中,这意味着它需要一段时间才能实现,除非它获得大量选票。
另一个需要注意的重要事情是,由于 meteor 是开源的,您可以自己实现必要的更改并提交回来。
What is the best way to do the same thing in the mean time?
有多种解决方案,但如果不了解您的设计,就无法判断哪种解决方案最适合您的用例。
按原样使用代码,向集合添加唯一索引,并在出现重复键错误时处理它
更改设计以实现显式乐观并发。
这两种解决方案的核心是相同的,优雅地处理错误情况。 #1 更容易实现。 #2 在如何处理乐观并发方面具有更大的灵 active 。
关于mongodb - Meteor upsert 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13206015/