【发布时间】:2012-11-03 04:40:33
【问题描述】:
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
【问题讨论】:
-
使用您的解决方案,请注意,如果两个单独的客户端同时执行 findOne(),则会创建两个带有
{title:'Foo'}的文档。 -
是的,那么 upsert 的流星实现将是理想的。因为如果两个客户端使用相同的数据运行 upsert,他们会在他们的客户端模拟数据库上创建单独的文档;然后当两个文档在服务器上运行时,流星会同步它们。不过,它可能会有点麻烦……我明白为什么它还没有实现。