几天前我问了这个问题,但删除了它,我在这里添加了更多的解释。将用户ID与流星中用户上传的数据关联起来
所以我有一个过程,用户上传一个CSV,然后由PapaParse解析CSV,然后发送服务器端,最终插入到MongoDb中。
我的问题是,这些上传都没有链接到特定的用户,所以任何人都可以以现在看起来的方式访问每个上传。
我试图做的是循环上传数据,看起来像这样;
var document = [{object}, {object}, {object}, {object}, {object}... ];
我使用的for循环来循环通过每个对象的和经由var currentUser = this.userId;
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
字段这包含用户的ID是存储器分配是用于更大上传的问题和meteor简单地崩溃试图循环遍历所有对象,并单独将_id键添加到数组的每个单元格中的每个对象。
当文档插入MongoDB中,它看起来像这样:
我知道在我以前的帖子,有人提到,MongoDB的插入方法没有考虑数组作为输入,但不知何故在我的情况下,它的确如此,因为上面的屏幕截图就是在将文档插入到MongoDB之前的样子。所以基本上,每个对象都是MongoDB中的一个新文档。我试图找到一种方法来绑定用户的用户ID与数据库中的每个文档。
除了循环遍历整个数据集(有些用户可能成千上万)之外,是否还有另一种方法可以将上传与唯一当前用户相关联?
嘿,谢谢你的帮助。现在,用户的Id与集合相关联,如下所示:https://i.gyazo.com/171e03faa16380bc3d2ce8709276f790.png因此,如果我正确理解这一点,数据库中的每个文档都将是一个具有userId键和数据密钥? –
我有另一个问题:如果同一用户上传更多的CSV文件,它们将位于同一个对象文档中,而不会在相同的用户ID下创建其他文档?同样,用户是否可以在同一个对象下添加更多数据/上传额外的CSV文件? –
对于你的第一个问题,是的,Bank中的每个文档将包含'{_id:String,userId:String,data:Array of objects}'。对于第二个问题:可以将更多csv文件添加到原始文档,但我不会推荐。请记住,Mongo文档每个限制为16MB。 –