从异步回调中将唯一项插入Meteor集合

时间:2013-09-02 00:44:23

标签: node.js mongodb meteor

我已经使用Meteor.bindEnvironment包装器定义了一个回调函数,如下所述 Meteor Async Guide。我使用了包装器,以便Meteor集合可用于此异步回调。在回调中,我试图仅插入具有名为“title”的属性的唯一值的文档。我找到了几个资源来演示Mongo处理这个问题的方法,但Meteor尚未实现所需的函数(例如find的findAndModify或upsert选项)。

如果查询没有返回匹配的文档,我已经使用了对传入标题值的查询并插入新文档。但是,由于回调的异步性质以及最终插入到集合中的重复项,这会失败。

是否有Meteor或Node.js模式用于包装像这样的关键部分?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果只有一个演员(客户端或服务器)正在进行轮询,我不会看到你如何获得“已收到”阻止列表的异步旁路,除非您的更新呼叫过于频繁。 api中没有任何内容只能在时间戳之后返回msgs,或只订阅更改吗?

如果您有多个客户端,每个客户端轮询一个共同的外部源进行更新,那么尝试同步到合并的公共集合(您没有说,但会有您描述的问题),

按标题+用户标识使每个流唯一。

您还可能希望客户端上的本地集合跟踪客户端看到的内容,如果您正在尝试审计跟踪,则可以在服务器上单独查看。