从Method返回的流星Minimongo插入文档导致订阅错误

时间:2019-05-09 11:58:38

标签: meteor minimongo

考虑为服务器和客户端创建的集合:

export const MyCollection = new Mongo.Collection('myCollection')

由于性能原因,我通过方法从服务器收到文档:

服务器

Meteor.methods({
  getDocs() {
    return MyCollection.find({ ... }).fetch()
  }
})

在客户端上,我将它们存储在本地集合中

客户端

const LocalCollection = MyCollection._collection
Meteor.call('getDocs', { ... }, (err, docs) => {
  docs.forEach(doc => LocalCollection.insert(doc))
})

现在这可以正常工作,但是当我在另一点运行订阅时还返回该方法返回的文档中的文件时,我收到以下错误:

  

未捕获的错误:预计不会找到要添加的现有文件

我的问题是,是否要在订阅前手动刷新Localcollection,或者是否有办法告诉它“无论如何都覆盖现有文档”?

请注意,我正在客户端上使用LocalCollection,因为默认情况下allow/deny设置为拒绝所有内容以及像这样插入的任何文档

Meteor.call('getDocs', { ... }, (err, docs) => {
  docs.forEach(doc => MyCollection.insert(doc))
})

将被拒绝插入。

0 个答案:

没有答案