将 userID 关联到 Meteor 中用户上传的数据

Associating a userID to user uploaded data in Meteor

我几天前问过这个问题,但删除了它,我在此处添加更多说明以了解我正在查看的内容。

所以我有一个过程,用户上传 CSV,然后由 PapaParse 解析 CSV,然后发送服务器端并最终插入 MongoDb。

我的问题是 none 这些上传链接到特定用户,因此任何人都可以像现在这样访问每个上传。

我尝试做的是循环上传数据,如下所示;

var document = [{object}, {object}, {object}, {object}, {object}... ];

我使用 for 循环遍历每个对象并添加一个 _id 字段,其中包含通过 var currentUser = this.userId;

的用户 ID
Meteor.methods({
  insert: function(document){
    var currentUser = this.userId;
    var newDocument = document;

    for(var i = 0; i < newDocument.length; i++){
      newDocument[i]._id = currentUser;
    }

     Bank.insert(newDocument);
  }

问题是内存分配对于较大的上传来说是个问题,meteor 只是崩溃试图遍历所有对象并将 _id 键单独添加到数组的每个单元格中的每个对象。

当文档插入 MongoDB 时,它看起来像这样:

我知道在我之前的 post 中,有人提到 MongoDB 的插入方法不将数组作为输入,但在我的情况下,它确实如此,因为上面的屏幕截图是文档在插入 MongoDB 之前的确切外观。所以基本上,每个对象都是 MongoDB 中的一个新文档。我正在尝试找到一种方法将用户的用户 ID 与数据库中的每个文档绑定。

除了遍历整个数据集之外,还有其他方法可以将上传与唯一当前用户相关联吗?某些用户可能有数万个数据集?

为什么不直接做呢?

Meteor.methods({
  insert: function(document){
    var currentUser = Meteor.userId();
    var newDocument = document;    
    Bank.insert({userId: currentUser, data: newDocument});
  }
});

现在您 collection 中的每个文档将有两个 userIddata。后者将是你的数组。