【发布时间】:2015-12-08 00:27:19
【问题描述】:
我几天前问过这个问题,但删除了它,我在这里添加更多说明以说明我正在查看的内容。
所以我有一个过程,用户上传 CSV,然后 CSV 由 PapaParse 解析,然后发送到服务器端并最终插入 MongoDb。
我的问题是这些上传都没有链接到特定用户,所以任何人都可以访问每个上传的内容,就像现在的样子。
我试图做的是循环上传数据,看起来像这样;
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);
}
问题是内存分配对于较大的上传来说是一个问题,并且流星在尝试遍历所有对象并将 _id 键单独添加到数组的每个单元格中的每个对象时只会崩溃。
当文档插入到 MongoDB 中时,它看起来像这样:
我知道在我之前的帖子中,有人提到 MongoDB 的 insert 方法不接受数组作为输入,但在我的例子中,它确实如此,因为上面的屏幕截图正是文档在插入 MongoDB 之前的样子。所以基本上,每个对象都是 MongoDB 中的一个新文档。我正在尝试找到一种方法将用户的用户 ID 与数据库中的每个文档绑定。
除了循环遍历整个数据集(某些用户可能有数万个)之外,还有其他方法可以将上传与唯一的当前用户相关联吗?
【问题讨论】:
标签: mongodb meteor meteor-accounts